This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bfd and cygpath


On Wed, Apr 24, 2013 at 8:52 PM, Peter Rosin <peda@lysator.liu.se> wrote:
> On 2013-04-24 22:24, NightStrike wrote:
>> On Wed, Apr 24, 2013 at 4:16 PM, NightStrike <nightstrike@gmail.com> wrote:
>>> On Wed, Apr 24, 2013 at 4:01 PM, Peter Rosin <peda@lysator.liu.se> wrote:
>>>> So, it appears that LT_PATH_LD does not like your ld? I'd look into
>>>> that.
>>>
>>> Where is the actual test that runs when that option is set?  I can't find it.
>
> It's in the LT_PATH_LD macro, a loop is broken out of like this:
>
>       case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
>       *GNU* | *'with BFD'*)
>         test no != "$with_gnu_ld" && break
>         ;;
>       *)
>         test yes != "$with_gnu_ld" && break
>         ;;
>       esac
>
> But reading it more carefully, it appears as if $LD is not clobbered if already
> set by the user (and if $LD is preset by the user I read it as if --with-gnu-ld
> indeed forces libtool to treat $LD is GNU ld). Do you feed a preset $LD to
> configure? Does anything else in configure set $LD before the expansion of
> LT_PATH_LD runs?

I don't explicitly set LD in top level configure, no.  I thought it
was being set via the output of gcc -print-prog-name=ld, as per my
last post.  I could be wrong.

> The reason I ask is because your $LD result
>         c:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe
> hasn't been canonicalized. I'd expect it to be
>         c:/mingw32/i686-w64-mingw32/bin/ld.exe
> but the canonicalized version is only assigned to $LD if $LD isn't set
> already.
>
> BTW, have you played mount games that perhaps fools the naive c14n?

I don't know what c14n is.  I'm not trying to play mount games, but I
am running in a hybrid wine environment.

> Hmm, I also see this:
>
>   case $host in
>   *-*-mingw*)
>     # gcc leaves a trailing carriage return which upsets mingw
>     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
>   *)
>     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
>   esac
>
> Does your $host match *-*-mingw*?

Yes, build==host==target==i686-w64-mingw32 using 32-bit wine on linux.

>> I found this:
>> configure:5654: checking for ld used by gcc
>> configure:5721: result:
>> c:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe
>> configure:5728: checking if the linker
>> (c:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe)
>> is GNU ld
>> configure:5743: result: no
>
> The above is (partial) output from LT_PATH_LD.
>
>> So here's a problem...   It's getting that linker instead of just
>> using $CC because it grabbed the output of gcc -print-prog, which is
>> using a windows style path.
>
> Windows style pathnames shouldn't be a problem on MSYS. I assume you are
> on MSYS?

Nope.  wine.

> It's perhaps time to send the full config.log...

Ok, will try setting LD and will send with and without that.

>> What I don't understand is why it isn't just using gcc as the linker,
>> instead of ld.
>
> It's the way it has been done for a long time, I think originally bugs
> (bugs now long gone) caused libtool devs to sidestep the frontend when
> linking (instead of fixing upstream). And you are not the first to ask.
> I'm sure most would be happy to see this change. I'm also sure some
> will be upset by regressions...

This is probably a sure path to success.  Every piece of documentation
I've ever read on GCC says not to call ld directly.  How do we get
this changed?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]