On Thu, Jan 19, 2012 at 5:22 PM, David Coppa <dco...@openbsd.org> wrote: > Hi, > > This diff fixes R's problem with pthread undefined symbols, as > reported here: > > http://marc.info/?l=openbsd-ports&m=132196919327917 > > and here: > > http://marc.info/?l=openbsd-ports&m=132187529729922 > > It also fixes libpthread linkage (-lpthread -> -pthread) and > an incorrect usage of the "--export-dynamic" linker flag (it's > '-Wl,--export-dynamic', not '-Wl,-export-dynamic'. > > Tested on sparc64 and amd64. > Ok?
Ping! > Index: Makefile > =================================================================== > RCS file: /cvs/ports/math/R/Makefile,v > retrieving revision 1.44 > diff -u -p -r1.44 Makefile > --- Makefile 3 Nov 2011 20:28:09 -0000 1.44 > +++ Makefile 19 Jan 2012 16:10:45 -0000 > @@ -4,7 +4,7 @@ SHARED_ONLY= Yes > > COMMENT= clone of S, a powerful math/statistics/graphics language > DISTNAME= R-2.8.1 > -REVISION= 6 > +REVISION= 7 > SHARED_LIBS= Rlapack 29.0 \ > Rblas 29.0 > > @@ -20,8 +20,8 @@ PERMIT_DISTFILES_FTP= Yes > WANTLIB= GL ICE SM X11 Xext Xmu Xrender Xss Xt \ > bz2 c cairo expat fontconfig freetype glib-2.0 \ > gmodule-2.0 gobject-2.0 gthread-2.0 jpeg m ncurses pango-1.0 \ > - pangocairo-1.0 pangoft2-1.0 pcre pixman-1 png pthread-stubs \ > - readline tiff xcb xcb-render xcb-shm z \ > + pangocairo-1.0 pangoft2-1.0 pcre pixman-1 png pthread \ > + pthread-stubs readline tiff xcb xcb-render xcb-shm z \ > ${MODFORTRAN_WANTLIB} ${MODTK_WANTLIB} > > MASTER_SITES= http://cran.r-project.org/src/base/R-2/ \ > Index: patches/patch-configure > =================================================================== > RCS file: /cvs/ports/math/R/patches/patch-configure,v > retrieving revision 1.10 > diff -u -p -r1.10 patch-configure > --- patches/patch-configure 11 Mar 2009 08:21:33 -0000 1.10 > +++ patches/patch-configure 19 Jan 2012 16:10:45 -0000 > @@ -1,6 +1,69 @@ > $OpenBSD: patch-configure,v 1.10 2009/03/11 08:21:33 sthen Exp $ > ---- configure.orig Thu Dec 18 14:03:48 2008 > -+++ configure Wed Mar 11 00:21:36 2009 > +--- configure.orig Thu Dec 18 15:03:48 2008 > ++++ configure Thu Jan 19 14:38:44 2012 > +@@ -31142,7 +31142,7 @@ echo "$as_me: WARNING: Use of flat namespace is > reques > + openbsd*) > + ## looks like ${wl} is not defined here. Perhaps in libtool code? > + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then > +- main_ldflags="${wl}-export-dynamic" > ++ main_ldflags="${wl}--export-dynamic" > + shlib_ldflags="-shared -fPIC" > + fi > + ;; > +@@ -52736,13 +52736,13 @@ rm -f core conftest.err conftest.$ac_objext > conftest_i > + if test -n "$gl_have_pthread"; then > + # The program links fine without libpthread. But it may actually > + # need to link with libpthread in order to create multiple > threads. > +- { echo "$as_me:$LINENO: checking for pthread_kill in -lpthread" > >&5 > +-echo $ECHO_N "checking for pthread_kill in -lpthread... $ECHO_C" >&6; } > ++ { echo "$as_me:$LINENO: checking for pthread_kill in -pthread" >&5 > ++echo $ECHO_N "checking for pthread_kill in -pthread... $ECHO_C" >&6; } > + if test "${ac_cv_lib_pthread_pthread_kill+set}" = set; then > + echo $ECHO_N "(cached) $ECHO_C" >&6 > + else > + ac_check_lib_save_LIBS=$LIBS > +-LIBS="-lpthread $LIBS" > ++LIBS="-pthread $LIBS" > + cat >conftest.$ac_ext <<_ACEOF > + /* confdefs.h. */ > + _ACEOF > +@@ -52806,7 +52806,7 @@ fi > + { echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_kill" >&5 > + echo "${ECHO_T}$ac_cv_lib_pthread_pthread_kill" >&6; } > + if test $ac_cv_lib_pthread_pthread_kill = yes; then > +- LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread > ++ LIBMULTITHREAD=-pthread LTLIBMULTITHREAD=-pthread > + # On Solaris and HP-UX, most pthread functions exist also in > libc. > + # Therefore pthread_in_use() needs to actually try to create a > + # thread: pthread_create from libc will fail, whereas > +@@ -52824,13 +52824,13 @@ fi > + > + else > + # Some library is needed. Try libpthread and libc_r. > +- { echo "$as_me:$LINENO: checking for pthread_kill in -lpthread" > >&5 > +-echo $ECHO_N "checking for pthread_kill in -lpthread... $ECHO_C" >&6; } > ++ { echo "$as_me:$LINENO: checking for pthread_kill in -pthread" >&5 > ++echo $ECHO_N "checking for pthread_kill in -pthread... $ECHO_C" >&6; } > + if test "${ac_cv_lib_pthread_pthread_kill+set}" = set; then > + echo $ECHO_N "(cached) $ECHO_C" >&6 > + else > + ac_check_lib_save_LIBS=$LIBS > +-LIBS="-lpthread $LIBS" > ++LIBS="-pthread $LIBS" > + cat >conftest.$ac_ext <<_ACEOF > + /* confdefs.h. */ > + _ACEOF > +@@ -52895,8 +52895,8 @@ fi > + echo "${ECHO_T}$ac_cv_lib_pthread_pthread_kill" >&6; } > + if test $ac_cv_lib_pthread_pthread_kill = yes; then > + gl_have_pthread=yes > +- LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread > +- LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread > ++ LIBTHREAD=-pthread LTLIBTHREAD=-pthread > ++ LIBMULTITHREAD=-pthread LTLIBMULTITHREAD=-pthread > + fi > + > + if test -z "$gl_have_pthread"; then > @@ -60283,7 +60283,7 @@ LIBTHREAD!$LIBTHREAD$ac_delim > LTLIBTHREAD!$LTLIBTHREAD$ac_delim > LIBMULTITHREAD!$LIBMULTITHREAD$ac_delim > Index: patches/patch-src_main_Makefile_in > =================================================================== > RCS file: patches/patch-src_main_Makefile_in > diff -N patches/patch-src_main_Makefile_in > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_main_Makefile_in 19 Jan 2012 16:10:45 -0000 > @@ -0,0 +1,15 @@ > +$OpenBSD$ > + > +Fix runtime errors due to libpthread undefined symbols > + > +--- src/main/Makefile.in.orig Thu Jan 19 12:12:26 2012 > ++++ src/main/Makefile.in Thu Jan 19 12:13:35 2012 > +@@ -91,7 +91,7 @@ MAIN_LIBS = ../unix/libunix.a ../appl/libappl.a ../nma > + EXTRA_STATIC_LIBS = $(R_ZLIBS) $(R_BZLIBS) $(R_PCRE) $(R_XDR)$(R_LIBINTL) > + STATIC_LIBS = $(MAIN_LIBS) $(EXTRA_STATIC_LIBS) > + > +-EXTRA_LIBS = $(BLAS_LIBS) $(FLIBS) $(R_XTRA_LIBS) @LIBINTL@ > $(READLINE_LIBS) $(LIBS) > ++EXTRA_LIBS = $(BLAS_LIBS) $(FLIBS) $(R_XTRA_LIBS) @LIBINTL@ > $(READLINE_LIBS) $(LIBS) -pthread > + > + R_binary = R.bin > + R_bin_OBJECTS = Rmain.o >