Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Mar 2013 19:21:17 +0200
From:      "Andrew W. Nosenko" <andrew.w.nosenko@gmail.com>
To:        Gerald Pfeifer <gerald@pfeifer.com>
Cc:        Anton Shterenlikht <mexas@bristol.ac.uk>, freebsd-ports@freebsd.org, bdrewery@freebsd.org
Subject:   Re: is it a good idea to overwrite GCC_DEFAULT_VERSION= in Mk/bsd.gcc.mk?
Message-ID:  <CALa-7vw=e2GkfvReD4-eurUv%2BNaR6nJAT9cZ45tQVT6uac-n7Q@mail.gmail.com>
In-Reply-To: <alpine.LNX.2.00.1303251658150.1897@trevally.site>
References:  <201303251549.r2PFnx8W004768@mech-cluster241.men.bris.ac.uk> <alpine.LNX.2.00.1303251658150.1897@trevally.site>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 25, 2013 at 5:59 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> On Mon, 25 Mar 2013, Anton Shterenlikht wrote:
>> I've now run ia64 with the above change for over 2 weeks,
>> mostly rebuilding ports, etc.
>> I didn't see any issues with gcc47.
>> So, from my very limited testing,
>> gcc47 can be made default.
>
> Thanks for the feedback, Anton!  To really make that switch
> globally, we'll need more extensive testing, a full ports builds
> run, since there is a chance that some port you are not using may
> be broken, and I hope to get this done in the coming weeks.

>From my expiriense, devel/glib20 cannot be compiled with gcc47.
Reason, as I see it, the reality may be slightly different or more
complex, but, I hope it will give a hint about direction:
  1. glib'c configure checks whether -Bsymbolic-functions option is
supported by linker (by passing it as -Wl,-Bsymbolic-functions through
CC/CXX frontend)
  2. Because gcc47 frontend calls /usr/local/lib/ld, which is fresh
enough, the check passes as "supported".
  3. configure registers gcc47 as linker frontend, generates libtool
script, and so on...
  4. At the real link time the port machinery hijacks invocations to
the generated libtool scrips and redirects them to the own
gnome-libtool, which know nothing about configure results, and which
uses hardcoded "cc" instead of requested gcc47
  5. cc is /usr/bin/cc aka gcc-4.2 in my case.  It uses /usr/bin/ld
(from  base) instead of /usr/local/bin/ld (from ports).
  6. Base version lf ld is old enough and know nothing about
-Bsymbolic-functions flag.
  7. As consequence, build finishes with linker error.

Again: The description above may be inaccurate or wrong in details.  I
didn't investigate the problem throughly.  But it is how it looks
like.

-- 
Andrew W. Nosenko <andrew.w.nosenko@gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALa-7vw=e2GkfvReD4-eurUv%2BNaR6nJAT9cZ45tQVT6uac-n7Q>