ports/169791: Update sysutils/coreutils to 8.17

Richard Yao ryao at gentoo.org
Wed Jul 11 19:00:14 UTC 2012


>Number:         169791
>Category:       ports
>Synopsis:       Update sysutils/coreutils to 8.17
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jul 11 19:00:13 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Richard Yao
>Release:        FreeBSD 9.0-RELEASE
>Organization:
Gentoo
>Environment:
FreeBSD gfreebsd 9.0-r3-Gentoo FreeBSD Gentoo 9.0-r3 #0: Sun May 27 20:29:34 EDT 2012     root at gfreebsd:/usr/src/sys/amd64/compile/GENERIC  amd64
>Description:
coreutils relies on gnulib for many of its ./configure tests. A patch was made to gnulib shortly after the release of coreutils 8.17 to made libpthread detection work on OSF/1, but broke it on FreeBSD, so coreutils 8.12 is the last version that works.
>How-To-Repeat:
Try building coreutils 8.17 on FreeBSD. It will fail with the following linker error:

sort.c:(.text+0x4f25): undefined reference to `pthread_create'
>Fix:
Here is a Gentoo bug describing the problem:

https://bugs.gentoo.org/show_bug.cgi?id=415439

I am attaching our patch for this. It is against the ./configure script, rather than m4/pthread.m4.

I committed it to Gentoo a few hours ago. In our case, we could not build coreutils on Gentoo FreeBSD at all. I made a few minor changes to the ebuild for coreutils 8.17 and added this patch, which made it work.

Patch attached with submission follows:

diff --git a/configure b/configure
index f3156fe..925d6b5 100755
--- a/configure
+++ b/configure
@@ -42286,55 +42248,48 @@ fi
 
    LIB_PTHREAD=
    if test $ac_cv_header_pthread_h = yes; then
-                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_join" >&5
-$as_echo_n "checking for library containing pthread_join... " >&6; }
-if ${gl_cv_search_pthread_join+:} false; then :
+                              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create and pthread_join" >&5
+$as_echo_n "checking for library containing pthread_create and pthread_join... " >&6; }
+if ${gl_cv_lib_pthread+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  gl_saved_libs="$LIBS"
-        gl_cv_search_pthread_join=
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <pthread.h>
-int
-main ()
-{
-pthread_join (pthread_self (), (void **) 0);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_search_pthread_join="none required"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        if test -z "$gl_cv_search_pthread_join"; then
-          LIBS="-lpthread $gl_saved_libs"
+  gl_saved_libs=$LIBS
+        gl_cv_lib_pthread=
+        for gl_lib_prefix in '' '-lpthread'; do
+          LIBS="$gl_lib_prefix $gl_saved_libs"
           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
+                 void *noop (void *p) { return p; }
 int
 main ()
 {
-pthread_join (pthread_self (), (void **) 0);
+pthread_t pt;
+                 void *arg = 0;
+                 pthread_create (&pt, 0, noop, arg);
+                 pthread_join (pthread_self (), &arg);
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_search_pthread_join="-lpthread"
+  if test -z "$gl_lib_prefix"; then
+               gl_cv_lib_pthread="none required"
+             else
+               gl_cv_lib_pthread=$gl_lib_prefix
+             fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        fi
+          test -n "$gl_cv_lib_pthread" && break
+        done
         LIBS="$gl_saved_libs"
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_search_pthread_join" >&5
-$as_echo "$gl_cv_search_pthread_join" >&6; }
-     if test "$gl_cv_search_pthread_join" != "none required"; then
-       LIB_PTHREAD="$gl_cv_search_pthread_join"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_pthread" >&5
+$as_echo "$gl_cv_lib_pthread" >&6; }
+     if test "$gl_cv_lib_pthread" != "none required"; then
+       LIB_PTHREAD="$gl_cv_lib_pthread"
      fi
    fi
 


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list