1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-05 11:35:01 +00:00

Explictly link against libgcc_r, to work around bugs in 4.2-RELEASE onwards

and -CURRENT.  I'm still not sure why the bug was exposed only recently, but
it is due to libstdc++ being linked without the -nostdlib option (causing it
to be statically linked against libgcc even for the threaded case).

Thanks to Andrew Bliznak <andrew@ort.lviv.net> for testing this.
This commit is contained in:
Jeremy Lea 2000-12-21 19:40:44 +00:00
parent c1e724483a
commit cd3604440e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=36205
20 changed files with 270 additions and 60 deletions

View File

@ -49,7 +49,7 @@ CONFIGURE_ARGS= \
--with-jpeg=${LOCALBASE} \
--with-png=${LOCALBASE}
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin \
CC_ONLY_FLAGS="${FLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
CC_ONLY_FLAGS="${CFLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
post-build:
@${SED} -e "s;@PREFIX@;${PREFIX};g" \

View File

@ -0,0 +1,11 @@
--- js/src/Makefile.in.orig Thu Dec 21 01:23:12 2000
+++ js/src/Makefile.in Thu Dec 21 01:23:22 2000
@@ -218,7 +218,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-LDFLAGS += -pthread
+LDFLAGS += -pthread -lgcc_r
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32

View File

@ -1,13 +1,13 @@
--- nsprpub/config/FreeBSD.mk.orig Wed Oct 20 14:19:53 1999
+++ nsprpub/config/FreeBSD.mk Thu Feb 3 03:48:20 2000
@@ -21,14 +21,16 @@
+++ nsprpub/config/FreeBSD.mk Thu Dec 21 01:16:34 2000
@@ -21,24 +21,26 @@
include $(MOD_DEPTH)/config/UNIX.mk
-CC = gcc
-CCC = g++
RANLIB = ranlib
+CCC = ${CXX}
+CCC = ${CXX}
+
+# During FreeBSD port build, CFLAGS contains all of the optimizations
+# flags desired...
@ -20,3 +20,16 @@
CPU_ARCH = x86
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe $(THREAD_FLAG) -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
-DEFINES += -D_THREAD_SAFE
-THREAD_FLAG += -pthread
+DEFINES += -D_THREAD_SAFE -D_REENTRANT
+DSO_LDOPTS += -pthread -lgcc_r
else
IMPL_STRATEGY = _EMU
DEFINES += -D_PR_LOCAL_THREADS_ONLY

View File

@ -1,21 +1,39 @@
--- configure.orig Thu Apr 13 19:18:25 2000
+++ configure Thu Apr 20 09:07:57 2000
@@ -5618,7 +5618,7 @@
--- configure.orig Sat Sep 30 23:16:14 2000
+++ configure Thu Dec 21 00:49:23 2000
@@ -5786,7 +5786,7 @@
echo $ac_n "checking for Qt insanity""... $ac_c" 1>&6
echo "configure:5620: checking for Qt insanity" >&5
echo "configure:5788: checking for Qt insanity" >&5
- QT_CFLAGS="-I${QTDIR}/include/qt"
+ QT_CFLAGS="-I${QTDIR}/include/X11/qt"
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
# Check whether --with-static-qt or --without-static-qt was given.
@@ -7108,6 +7108,9 @@
case "$target_os" in
@@ -7702,6 +7702,9 @@
os2*)
LIBS=
+ ;;
;;
+freebsd*)
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
;;
+ ;;
esac
for ac_hdr in sys/byteorder.h compat.h getopt.h
do
@@ -8655,8 +8658,6 @@
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
@@ -8672,7 +8673,7 @@
EOF
if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS=""
+ _PTHREAD_LDFLAGS="-pthread -lgcc_r"
else
_PTHREAD_LDFLAGS="-lc_r"
fi

View File

@ -49,7 +49,7 @@ CONFIGURE_ARGS= \
--with-jpeg=${LOCALBASE} \
--with-png=${LOCALBASE}
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin \
CC_ONLY_FLAGS="${FLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
CC_ONLY_FLAGS="${CFLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
post-build:
@${SED} -e "s;@PREFIX@;${PREFIX};g" \

View File

@ -0,0 +1,11 @@
--- js/src/Makefile.in.orig Thu Dec 21 01:23:12 2000
+++ js/src/Makefile.in Thu Dec 21 01:23:22 2000
@@ -218,7 +218,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-LDFLAGS += -pthread
+LDFLAGS += -pthread -lgcc_r
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32

View File

@ -1,13 +1,13 @@
--- nsprpub/config/FreeBSD.mk.orig Wed Oct 20 14:19:53 1999
+++ nsprpub/config/FreeBSD.mk Thu Feb 3 03:48:20 2000
@@ -21,14 +21,16 @@
+++ nsprpub/config/FreeBSD.mk Thu Dec 21 01:16:34 2000
@@ -21,24 +21,26 @@
include $(MOD_DEPTH)/config/UNIX.mk
-CC = gcc
-CCC = g++
RANLIB = ranlib
+CCC = ${CXX}
+CCC = ${CXX}
+
+# During FreeBSD port build, CFLAGS contains all of the optimizations
+# flags desired...
@ -20,3 +20,16 @@
CPU_ARCH = x86
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe $(THREAD_FLAG) -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
-DEFINES += -D_THREAD_SAFE
-THREAD_FLAG += -pthread
+DEFINES += -D_THREAD_SAFE -D_REENTRANT
+DSO_LDOPTS += -pthread -lgcc_r
else
IMPL_STRATEGY = _EMU
DEFINES += -D_PR_LOCAL_THREADS_ONLY

View File

@ -1,21 +1,39 @@
--- configure.orig Thu Apr 13 19:18:25 2000
+++ configure Thu Apr 20 09:07:57 2000
@@ -5618,7 +5618,7 @@
--- configure.orig Sat Sep 30 23:16:14 2000
+++ configure Thu Dec 21 00:49:23 2000
@@ -5786,7 +5786,7 @@
echo $ac_n "checking for Qt insanity""... $ac_c" 1>&6
echo "configure:5620: checking for Qt insanity" >&5
echo "configure:5788: checking for Qt insanity" >&5
- QT_CFLAGS="-I${QTDIR}/include/qt"
+ QT_CFLAGS="-I${QTDIR}/include/X11/qt"
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
# Check whether --with-static-qt or --without-static-qt was given.
@@ -7108,6 +7108,9 @@
case "$target_os" in
@@ -7702,6 +7702,9 @@
os2*)
LIBS=
+ ;;
;;
+freebsd*)
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
;;
+ ;;
esac
for ac_hdr in sys/byteorder.h compat.h getopt.h
do
@@ -8655,8 +8658,6 @@
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
@@ -8672,7 +8673,7 @@
EOF
if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS=""
+ _PTHREAD_LDFLAGS="-pthread -lgcc_r"
else
_PTHREAD_LDFLAGS="-lc_r"
fi

View File

@ -49,7 +49,7 @@ CONFIGURE_ARGS= \
--with-jpeg=${LOCALBASE} \
--with-png=${LOCALBASE}
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin \
CC_ONLY_FLAGS="${FLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
CC_ONLY_FLAGS="${CFLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
post-build:
@${SED} -e "s;@PREFIX@;${PREFIX};g" \

View File

@ -0,0 +1,11 @@
--- js/src/Makefile.in.orig Thu Dec 21 01:23:12 2000
+++ js/src/Makefile.in Thu Dec 21 01:23:22 2000
@@ -218,7 +218,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-LDFLAGS += -pthread
+LDFLAGS += -pthread -lgcc_r
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32

View File

@ -1,13 +1,13 @@
--- nsprpub/config/FreeBSD.mk.orig Wed Oct 20 14:19:53 1999
+++ nsprpub/config/FreeBSD.mk Thu Feb 3 03:48:20 2000
@@ -21,14 +21,16 @@
+++ nsprpub/config/FreeBSD.mk Thu Dec 21 01:16:34 2000
@@ -21,24 +21,26 @@
include $(MOD_DEPTH)/config/UNIX.mk
-CC = gcc
-CCC = g++
RANLIB = ranlib
+CCC = ${CXX}
+CCC = ${CXX}
+
+# During FreeBSD port build, CFLAGS contains all of the optimizations
+# flags desired...
@ -20,3 +20,16 @@
CPU_ARCH = x86
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe $(THREAD_FLAG) -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
-DEFINES += -D_THREAD_SAFE
-THREAD_FLAG += -pthread
+DEFINES += -D_THREAD_SAFE -D_REENTRANT
+DSO_LDOPTS += -pthread -lgcc_r
else
IMPL_STRATEGY = _EMU
DEFINES += -D_PR_LOCAL_THREADS_ONLY

View File

@ -1,21 +1,39 @@
--- configure.orig Thu Apr 13 19:18:25 2000
+++ configure Thu Apr 20 09:07:57 2000
@@ -5618,7 +5618,7 @@
--- configure.orig Sat Sep 30 23:16:14 2000
+++ configure Thu Dec 21 00:49:23 2000
@@ -5786,7 +5786,7 @@
echo $ac_n "checking for Qt insanity""... $ac_c" 1>&6
echo "configure:5620: checking for Qt insanity" >&5
echo "configure:5788: checking for Qt insanity" >&5
- QT_CFLAGS="-I${QTDIR}/include/qt"
+ QT_CFLAGS="-I${QTDIR}/include/X11/qt"
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
# Check whether --with-static-qt or --without-static-qt was given.
@@ -7108,6 +7108,9 @@
case "$target_os" in
@@ -7702,6 +7702,9 @@
os2*)
LIBS=
+ ;;
;;
+freebsd*)
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
;;
+ ;;
esac
for ac_hdr in sys/byteorder.h compat.h getopt.h
do
@@ -8655,8 +8658,6 @@
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
@@ -8672,7 +8673,7 @@
EOF
if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS=""
+ _PTHREAD_LDFLAGS="-pthread -lgcc_r"
else
_PTHREAD_LDFLAGS="-lc_r"
fi

View File

@ -49,7 +49,7 @@ CONFIGURE_ARGS= \
--with-jpeg=${LOCALBASE} \
--with-png=${LOCALBASE}
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin \
CC_ONLY_FLAGS="${FLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
CC_ONLY_FLAGS="${CFLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
post-build:
@${SED} -e "s;@PREFIX@;${PREFIX};g" \

View File

@ -0,0 +1,11 @@
--- js/src/Makefile.in.orig Thu Dec 21 01:23:12 2000
+++ js/src/Makefile.in Thu Dec 21 01:23:22 2000
@@ -218,7 +218,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-LDFLAGS += -pthread
+LDFLAGS += -pthread -lgcc_r
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32

View File

@ -1,13 +1,13 @@
--- nsprpub/config/FreeBSD.mk.orig Wed Oct 20 14:19:53 1999
+++ nsprpub/config/FreeBSD.mk Thu Feb 3 03:48:20 2000
@@ -21,14 +21,16 @@
+++ nsprpub/config/FreeBSD.mk Thu Dec 21 01:16:34 2000
@@ -21,24 +21,26 @@
include $(MOD_DEPTH)/config/UNIX.mk
-CC = gcc
-CCC = g++
RANLIB = ranlib
+CCC = ${CXX}
+CCC = ${CXX}
+
+# During FreeBSD port build, CFLAGS contains all of the optimizations
+# flags desired...
@ -20,3 +20,16 @@
CPU_ARCH = x86
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe $(THREAD_FLAG) -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
-DEFINES += -D_THREAD_SAFE
-THREAD_FLAG += -pthread
+DEFINES += -D_THREAD_SAFE -D_REENTRANT
+DSO_LDOPTS += -pthread -lgcc_r
else
IMPL_STRATEGY = _EMU
DEFINES += -D_PR_LOCAL_THREADS_ONLY

View File

@ -1,21 +1,39 @@
--- configure.orig Thu Apr 13 19:18:25 2000
+++ configure Thu Apr 20 09:07:57 2000
@@ -5618,7 +5618,7 @@
--- configure.orig Sat Sep 30 23:16:14 2000
+++ configure Thu Dec 21 00:49:23 2000
@@ -5786,7 +5786,7 @@
echo $ac_n "checking for Qt insanity""... $ac_c" 1>&6
echo "configure:5620: checking for Qt insanity" >&5
echo "configure:5788: checking for Qt insanity" >&5
- QT_CFLAGS="-I${QTDIR}/include/qt"
+ QT_CFLAGS="-I${QTDIR}/include/X11/qt"
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
# Check whether --with-static-qt or --without-static-qt was given.
@@ -7108,6 +7108,9 @@
case "$target_os" in
@@ -7702,6 +7702,9 @@
os2*)
LIBS=
+ ;;
;;
+freebsd*)
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
;;
+ ;;
esac
for ac_hdr in sys/byteorder.h compat.h getopt.h
do
@@ -8655,8 +8658,6 @@
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
@@ -8672,7 +8673,7 @@
EOF
if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS=""
+ _PTHREAD_LDFLAGS="-pthread -lgcc_r"
else
_PTHREAD_LDFLAGS="-lc_r"
fi

View File

@ -49,7 +49,7 @@ CONFIGURE_ARGS= \
--with-jpeg=${LOCALBASE} \
--with-png=${LOCALBASE}
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin \
CC_ONLY_FLAGS="${FLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
CC_ONLY_FLAGS="${CFLAGS}" CCC_ONLY_FLAGS="${CXXFLAGS}"
post-build:
@${SED} -e "s;@PREFIX@;${PREFIX};g" \

View File

@ -0,0 +1,11 @@
--- js/src/Makefile.in.orig Thu Dec 21 01:23:12 2000
+++ js/src/Makefile.in Thu Dec 21 01:23:22 2000
@@ -218,7 +218,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
-LDFLAGS += -pthread
+LDFLAGS += -pthread -lgcc_r
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32

View File

@ -1,13 +1,13 @@
--- nsprpub/config/FreeBSD.mk.orig Wed Oct 20 14:19:53 1999
+++ nsprpub/config/FreeBSD.mk Thu Feb 3 03:48:20 2000
@@ -21,14 +21,16 @@
+++ nsprpub/config/FreeBSD.mk Thu Dec 21 01:16:34 2000
@@ -21,24 +21,26 @@
include $(MOD_DEPTH)/config/UNIX.mk
-CC = gcc
-CCC = g++
RANLIB = ranlib
+CCC = ${CXX}
+CCC = ${CXX}
+
+# During FreeBSD port build, CFLAGS contains all of the optimizations
+# flags desired...
@ -20,3 +20,16 @@
CPU_ARCH = x86
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
-OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe $(THREAD_FLAG) -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
+OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
ifeq ($(USE_PTHREADS),1)
IMPL_STRATEGY = _PTH
-DEFINES += -D_THREAD_SAFE
-THREAD_FLAG += -pthread
+DEFINES += -D_THREAD_SAFE -D_REENTRANT
+DSO_LDOPTS += -pthread -lgcc_r
else
IMPL_STRATEGY = _EMU
DEFINES += -D_PR_LOCAL_THREADS_ONLY

View File

@ -1,21 +1,39 @@
--- configure.orig Thu Apr 13 19:18:25 2000
+++ configure Thu Apr 20 09:07:57 2000
@@ -5618,7 +5618,7 @@
--- configure.orig Sat Sep 30 23:16:14 2000
+++ configure Thu Dec 21 00:49:23 2000
@@ -5786,7 +5786,7 @@
echo $ac_n "checking for Qt insanity""... $ac_c" 1>&6
echo "configure:5620: checking for Qt insanity" >&5
echo "configure:5788: checking for Qt insanity" >&5
- QT_CFLAGS="-I${QTDIR}/include/qt"
+ QT_CFLAGS="-I${QTDIR}/include/X11/qt"
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
# Check whether --with-static-qt or --without-static-qt was given.
@@ -7108,6 +7108,9 @@
case "$target_os" in
@@ -7702,6 +7702,9 @@
os2*)
LIBS=
+ ;;
;;
+freebsd*)
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
;;
+ ;;
esac
for ac_hdr in sys/byteorder.h compat.h getopt.h
do
@@ -8655,8 +8658,6 @@
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
@@ -8672,7 +8673,7 @@
EOF
if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS=""
+ _PTHREAD_LDFLAGS="-pthread -lgcc_r"
else
_PTHREAD_LDFLAGS="-lc_r"
fi