[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    Re: HP/Compaq Tru64 linker semantics
From:       Karl Vogel <karl.vogel () seagha ! com>
Date:       2004-04-28 23:47:15
Message-ID: 40904283.8040509 () seagha ! com
[Download RAW message or body]

Rainer Orth wrote:

>Jim Wilson writes:
>
>  
>
>>This is because of confusion between "-o output" and
>>"-oldstyle_liblookup"  This should be fixable by defining
>>SWITCHES_NEED_SPACES to include "o".  This changes both gcc.c and
>>collect2.c, and they will no longer accept "-ooutput" as valid, which
>>should let the Tru64 linker option work.
>>    
>>
>
>True, this is even mentioned in the PR.  I've just checked that this is
>true: ld doesn't understand -otest (instead of -o test).  I once had a
>hacky patch to let collect2 pass through certain flags (like
>-oldstyle_liblookup) unprocessed, but this is much cleaner.
>
>I'll prepare a patch.
>
>  
>
I did something like:

+Index: gcc/config/alpha/osf.h
+--- gcc/config/alpha/osf.h.orig 2003-12-12 02:19:23.000000000 +0100
++++ gcc/config/alpha/osf.h      2004-04-26 21:25:14.000000000 +0200
+@@ -79,7 +79,7 @@
+    constructor and call-frame data structures are not accidentally
+    overridden.  */
+ #define LINK_SPEC  \
+-  "-G 8 %{O*:-O3} %{!O*:-O1} -S %{static:-non_shared} \
++  "-oldstyle_liblookup %{!o:-o a.out} -G 8 %{O*:-O3} %{!O*:-O1} -S %{static:-non_shared} \
+    %{!static:%{shared:-shared -hidden_symbol _GLOBAL_*} \
+    %{!shared:-call_shared}} %{pg} %{taso} %{rpath*}"
+ 



As I also bumped into the problem with the -o handling (ie. error when 
no -o is given on the gcc command line), but since I'm no GCC hacker, 
I'm not sure it's the best way :)

Karl.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic