This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
3.4/3.5 PATCH: Allow passing -oldstyle_liblookup to Tru64 UNIX ld (PR other/1963)
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 29 Apr 2004 20:17:35 +0200 (MEST)
- Subject: 3.4/3.5 PATCH: Allow passing -oldstyle_liblookup to Tru64 UNIX ld (PR other/1963)
This patch fixes PR other/1963 as suggested in the PR and by Jim Wilson:
http://gcc.gnu.org/ml/gcc/2004-04/msg01338.html
Bootstrapped without regressions on alpha-dec-osf5.1b (mainline) and
alpha-dec-osf4.0f (3.4 branch).
Ok for mainline and branch? Although this is not a regression, the fix is
strictly platform-specific, the bug is long standing and without a
workaround, so I'd really like this to go in for 3.4.1, too.
After testing this patch, it occured to me that it might be
useful/desirable to be able to pass -oldstyle_liblookup directly to gcc
instead of having to go through -Wl,-oldstyle_liblookup (as works for cc).
Unfortunately, the quick hack to the specs file, adding the corresponding
bypass the LINK_SPEC, didn't work: the option still got split as -o
ldstyle_liblookup. Given that gcc only allows passing a small number of
well-known linker options directly without -Wl, this shouldn't be a
problem.
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Thu Apr 29 00:08:16 2004 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR other/1963
* config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
Index: gcc/config/alpha/osf.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/osf.h,v
retrieving revision 1.35
diff -u -p -r1.35 osf.h
--- gcc/config/alpha/osf.h 12 Dec 2003 01:19:23 -0000 1.35
+++ gcc/config/alpha/osf.h 29 Apr 2004 17:59:19 -0000
@@ -169,6 +169,10 @@ __enable_execute_stack (void *addr)
#define LD_INIT_SWITCH "-init"
#define LD_FINI_SWITCH "-fini"
+/* The linker needs a space after "-o". This allows -oldstyle_liblookup to
+ be passed to ld. */
+#define SWITCHES_NEED_SPACES "o"
+
/* Select a format to encode pointers in exception handling data. CODE
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
true if the symbol may be affected by dynamic relocations.