Date: Sun, 14 Nov 2010 07:43:23 +0300 From: Anonymous <swell.k@gmail.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/152227: [patch] www/firefox-devel: fix PGO on gcc45 Message-ID: <8639r4sefo.fsf@gmail.com> Resent-Message-ID: <201011140450.oAE4o8cX010697@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 152227 >Category: ports >Synopsis: [patch] www/firefox-devel: fix PGO on gcc45 >Confidential: no >Severity: non-critical >Priority: low >Responsible: gecko >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Nov 14 04:50:08 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Anonymous >Release: FreeBSD 9.0-CURRENT amd64 >Organization: >Environment: $ g++45 -v gcc version 4.5.2 20101104 (prerelease) (GCC) $ ld -v GNU gold (GNU Binutils 2.21.51.20101111) 1.10 $ make -V PKGNAME firefox-4.0.b8.57465,1 # nightly build >Description: Don't add -I/usr/include and -L/usr/lib to CFLAGS/LDFLAGS, it messes up search path for gcc's own includes/libs. $ echo 'int main(void) { return(0); }' \ | g++45 -xc -o/dev/null - -fprofile-generate -L/usr/lib -Wl,--verbose \ |& fgrep gcov attempt to open /usr/lib/libgcov.so failed attempt to open /usr/lib/libgcov.a succeeded (/usr/lib/libgcov.a)_gcov_merge_add.o (/usr/lib/libgcov.a)_gcov.o :(.text+0x1d): undefined reference to `__gcov_indirect_call_profiler' :(.text+0x64): undefined reference to `__gcov_indirect_call_profiler' zsh: exit 1 $ echo 'int main(void) { return(0); }' \ | g++45 -xc -o/dev/null - -fprofile-generate -Wl,--verbose \ |& fgrep gcov attempt to open LOCALBASE/lib/gcc45/gcc/x86_64-portbld-freebsd9.0/4.5.2/libgcov.so failed attempt to open LOCALBASE/lib/gcc45/gcc/x86_64-portbld-freebsd9.0/4.5.2/libgcov.a succeeded (LOCALBASE/lib/gcc45/gcc/x86_64-portbld-freebsd9.0/4.5.2/libgcov.a)_gcov.o (LOCALBASE/lib/gcc45/gcc/x86_64-portbld-freebsd9.0/4.5.2/libgcov.a)_gcov_merge_add.o (LOCALBASE/lib/gcc45/gcc/x86_64-portbld-freebsd9.0/4.5.2/libgcov.a)_gcov_indirect_call_profiler.o >How-To-Repeat: # fails because /usr/lib/libgcov.a is used instead of LOCALBASE/lib/**/libgcov.a $ make [...] g++45 -fprofile-generate -L/usr/lib [...] -o libxul.so LOCALBASE/bin/ld: ../../embedding/browser/gtk/src/libgtkembedmoz.a(EmbedPrivate.o): in function EmbedPrivate::EmbedPrivate():/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/embedding/browser/gtk/src/EmbedPrivate.cpp:983: error: undefined reference to '__gcov_average_profiler' LOCALBASE/bin/ld: ../../embedding/browser/gtk/src/libgtkembedmoz.a(EmbedPrivate.o): in function EmbedPrivate::EmbedPrivate():/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/embedding/browser/gtk/src/EmbedPrivate.cpp:983: error: undefined reference to '__gcov_ior_profiler' LOCALBASE/bin/ld: ../../embedding/browser/gtk/src/libgtkembedmoz.a(EmbedPrivate.o): in function EmbedPrivate::~EmbedPrivate():../../../../dist/include/nsTArray-inl.h:132: error: undefined reference to '__gcov_average_profiler' LOCALBASE/bin/ld: ../../embedding/browser/gtk/src/libgtkembedmoz.a(EmbedPrivate.o): in function EmbedPrivate::~EmbedPrivate():../../../../dist/include/nsTArray-inl.h:132: error: undefined reference to '__gcov_ior_profiler' LOCALBASE/bin/ld: ../../embedding/browser/gtk/src/libgtkembedmoz.a(EmbedPrivate.o):(.data.rel+0xa8): error: undefined reference to '__gcov_merge_ior' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsBufferedStreams.o): in function nsBufferedOutputStream::GetBuffer(unsigned int, unsigned int):/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/netwerk/base/src/nsBufferedStreams.cpp:798: error: undefined reference to '__gcov_average_profiler' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsBufferedStreams.o): in function nsBufferedOutputStream::GetBuffer(unsigned int, unsigned int):/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/netwerk/base/src/nsBufferedStreams.cpp:798: error: undefined reference to '__gcov_ior_profiler' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsBufferedStreams.o): in function nsBufferedInputStream::GetBuffer(unsigned int, unsigned int):/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/netwerk/base/src/nsBufferedStreams.cpp:798: error: undefined reference to '__gcov_average_profiler' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsBufferedStreams.o): in function nsBufferedInputStream::GetBuffer(unsigned int, unsigned int):/a/pkgbuild/a/freebsd-ports/www/firefox-devel/work/mozilla-central/netwerk/base/src/nsBufferedStreams.cpp:798: error: undefined reference to '__gcov_ior_profiler' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsBufferedStreams.o):(.data.rel+0xa8): error: undefined reference to '__gcov_merge_ior' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsIOService.o):(.data.rel+0xa8): error: undefined reference to '__gcov_merge_ior' LOCALBASE/bin/ld: ../../staticlib/components/libnecko.a(nsLoadGroup.o):(.data.rel+0xe8): error: undefined reference to '__gcov_merge_ior' >Fix: --- a.diff begins here --- Index: www/firefox-devel/files/patch-configure.in =================================================================== --- www/firefox-devel/files/patch-configure.in (revision 432) +++ www/firefox-devel/files/patch-configure.in (working copy) @@ -36,6 +36,15 @@ AC_DEFINE(HAVE_CLOCK_MONOTONIC) AC_SUBST(HAVE_CLOCK_MONOTONIC) AC_SUBST(REALTIME_LIBS) +@@ -4808,7 +4810,7 @@ CFLAGS=$_SAVE_CFLAGS + LDFLAGS=$_SAVE_LDFLAGS + LIBS=$_SAVE_LIBS + +-if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then ++if test "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "/usr" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then + ZLIB_CFLAGS="-I${ZLIB_DIR}/include" + ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}" + fi @@ -5938,11 +5938,11 @@ if test -n "$MOZ_WEBM"; then AC_CHECK_PROGS(VPX_AS, $YASM yasm, "") dnl We have YASM, see if we have assembly on this platform. --- a.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8639r4sefo.fsf>