On recent Solaris 11 Update 1 builds, the 4.6 branch failed to bootstrap in libjava: the configure test for connect failed since libsocket.so indirectly depends on libcryptoutil.so which only lives in /lib, not /usr/lib:
configure:20311: checking for connect in -lsocket configure:20339: /var/gcc/regression/gcc-4.6-branch/11-gcc/build/./gcc/xgcc -B/var/gcc/regression/gcc-4.6-branch/11-gcc/build/./gcc/ -B/vol/gcc/i386-pc-solaris2.11/bin/ -B/vol/gcc/i386-pc-solaris2.11/lib/ -isystem /vol/gcc/i386-pc-solaris2.11/include -isystem /vol/gcc/i386-pc-solaris2.11/sys-include -o conftest -g -O2 conftest.c -lsocket >&5 ld: warning: file libcryptoutil.so.1: required by /usr/lib/libmd.so.1, not found Undefined first referenced symbol in file get_fips_mode /usr/lib/libmd.so.1 ld: fatal: symbol referencing errors. No output written to conftest The Solaris 2 gcc configuration overrides the Sun linker default (which includes /lib, of course) with -Y P, so we need to explicitly add it ourselves. The following patch does exactly that. Bootstrapped without regressions on i386-pc-solaris2.1[01] and sparc-sun-solaris2.1[01], installed on 4.6 branch. The 4.7 branch and mainline are not affected since /lib has been added there during the complete rework of the Solaris configurations. Rainer 2012-08-06 Rainer Orth <r...@cebitec.uni-bielefeld.de> * config/sol2.h (LINK_ARCH32_SPEC_BASE): Add /lib to default linker search path. * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise for /lib/sparcv9.
# HG changeset patch # Parent 7415e4cf7479d1f8e0a66d3db9bd03d3b17964cf Add /lib to Solaris default library search path diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -1,6 +1,6 @@ /* Operating system specific defines to be used when targeting GCC for any Solaris 2 system. - Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011 + Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -163,12 +163,12 @@ along with GCC; see the file COPYING3. %{YP,*} \ %{R*} \ %{compat-bsd: \ - %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \ - %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/usr/lib}}} \ + %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib:%R/lib} \ + %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/usr/lib:%R/lib}}} \ -R %R/usr/ucblib} \ %{!compat-bsd: \ - %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \ - %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/usr/lib}}}}" + %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib:%R/lib} \ + %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/usr/lib:%R/lib}}}}" #undef LINK_ARCH32_SPEC #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE diff --git a/gcc/config/sparc/sol2-bi.h b/gcc/config/sparc/sol2-bi.h --- a/gcc/config/sparc/sol2-bi.h +++ b/gcc/config/sparc/sol2-bi.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for bi-arch SPARC running Solaris 2 using the system assembler and linker. - Copyright (C) 2002, 2003, 2004, 2006, 2007, 2009, 2010, 2011 + Copyright (C) 2002, 2003, 2004, 2006, 2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -191,12 +191,12 @@ see the files COPYING3 and COPYING.RUNTI %{YP,*} \ %{R*} \ %{compat-bsd: \ - %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \ - %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/sparcv9}}} \ + %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9:%R/lib/sparcv9} \ + %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/sparcv9:%R/lib/sparcv9}}} \ -R %R/usr/ucblib/sparcv9} \ %{!compat-bsd: \ - %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \ - %{!p:%{!pg:-Y P,%R/usr/lib/sparcv9}}}}" + %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9:%R/lib/sparcv9} \ + %{!p:%{!pg:-Y P,%R/usr/lib/sparcv9:%R/lib/sparcv9}}}}" #define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University