From f5a6ddb9b44253417d885bc02ed10c2b54ccc76d Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Mon, 31 Dec 2007 16:04:26 +0000 Subject: [PATCH] re PR driver/33772 (collect2 doesn't strip .sl version) PR driver/33772 * collect2.c (SHLIB_SUFFIX): Define if not defined. (write_c_file_stat): Use SHLIB_SUFFIX. * som.h (SHLIB_SUFFIX): Define. * doc/tm.texi (SHLIB_SUFFIX): Document. From-SVN: r131236 --- gcc/ChangeLog | 8 ++++++++ gcc/collect2.c | 8 ++++++-- gcc/config/pa/som.h | 4 ++++ gcc/doc/tm.texi | 8 ++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22f6994a1bd9..7fa4d9ef9d42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2007-12-31 John David Anglin + + PR driver/33772 + * collect2.c (SHLIB_SUFFIX): Define if not defined. + (write_c_file_stat): Use SHLIB_SUFFIX. + * som.h (SHLIB_SUFFIX): Define. + * doc/tm.texi (SHLIB_SUFFIX): Document. + 2007-12-27 Gerald Pfeifer * config.gcc: Proactively add FreeBSD 10 and FreeBSD 11. diff --git a/gcc/collect2.c b/gcc/collect2.c index e4c92857e0d1..714f4d911cc3 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -129,6 +129,10 @@ along with GCC; see the file COPYING3. If not see #define SCAN_LIBRARIES #endif +#ifndef SHLIB_SUFFIX +#define SHLIB_SUFFIX ".so" +#endif + #ifdef USE_COLLECT2 int do_collecting = 1; #else @@ -1790,9 +1794,9 @@ write_c_file_stat (FILE *stream, const char *name ATTRIBUTE_UNUSED) } else { - if (strncmp (q, ".so", 3) == 0) + if (strncmp (q, SHLIB_SUFFIX, strlen (SHLIB_SUFFIX)) == 0) { - q += 3; + q += strlen (SHLIB_SUFFIX); break; } else diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h index 22bda046912d..5d1c054a3eb7 100644 --- a/gcc/config/pa/som.h +++ b/gcc/config/pa/som.h @@ -335,3 +335,7 @@ do { \ /* We can't handle weak aliases, and therefore can't support pragma weak. Suppress the use of pragma weak in gthr-dce.h and gthr-posix.h. */ #define GTHREAD_USE_WEAK 0 + +/* Shared library suffix. Collect2 strips the version string after + this suffix when generating constructor/destructor names. */ +#define SHLIB_SUFFIX ".sl" diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 98fad45fccf8..f00a154deb20 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -7629,6 +7629,14 @@ code must advance @var{ptr} to the beginning of the filename on that line. Otherwise, it must set @var{ptr} to @code{NULL}. @end defmac +@defmac SHLIB_SUFFIX +Define this macro to a C string constant containing the default shared +library extension of the target (e.g., @samp{".so"}). @command{collect2} +strips version information after this suffix when generating global +constructor and destructor names. This define is only needed on targets +that use @command{collect2} to process constructors and destructors. +@end defmac + @node Instruction Output @subsection Output of Assembler Instructions -- 2.47.2