public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* errors with hidden symbols and apache
@ 2004-09-03 22:43 Edward Peschko
  2004-09-03 23:09 ` Richard Henderson
  0 siblings, 1 reply; 8+ messages in thread
From: Edward Peschko @ 2004-09-03 22:43 UTC (permalink / raw)
  To: gcc; +Cc: dev

hey all, 

I'm trying to compile apache/mod_perl with DSO, on solaris 5.8, and am getting

	/opt/tools/mdss/dev/2.8/bin/ld: libhttpd.ep: hidden symbol `__floatdisf' in /opt/tools/install/bin/../lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/libgcc.a(_floatdisf.oS) is referenced by DSO

(when I try 3.4.1 - I get a different hidden symbol error).


This is truly a show-stopper for the 3.x series - no matter what I do I can't 
get rid of the error, and I have to regress back to 2.95.3 to make it works.
But it does work, so I'm assuming the bug is in the compiler.

Anyways, to reproduce, get:

	apache_1.3.31
	perl-5.8.5
	mod_perl-1.29

and compile mod_perl with

/opt/tools/mdss/test/2.8/bin/perl Makefile.PL  APACHE_PREFIX=/opt/tools/mdss/test/2.8 APACHE_SRC=apache_1.3.31/src DO_HTTPD=1 USE_APACI=1 EVERYTHING=1 APACI_ARGS='--enable-rule=SHARED_CORE' ADD_MODULE=so

make

It will recompile apache as part of the install process.

Ed

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-03 22:43 errors with hidden symbols and apache Edward Peschko
@ 2004-09-03 23:09 ` Richard Henderson
  2004-09-03 23:25   ` Edward Peschko
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2004-09-03 23:09 UTC (permalink / raw)
  To: Edward Peschko; +Cc: gcc, dev

On Fri, Sep 03, 2004 at 03:35:45PM -0700, Edward Peschko wrote:
> I'm trying to compile apache/mod_perl with DSO, on solaris 5.8, and am getting
> 
> 	/opt/tools/mdss/dev/2.8/bin/ld: libhttpd.ep: hidden symbol `__floatdisf' in /opt/tools/install/bin/../lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/libgcc.a(_floatdisf.oS) is referenced by DSO

I suspect that you linked using ld, and not with the gcc driver.
Which would be incorrect.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-03 23:09 ` Richard Henderson
@ 2004-09-03 23:25   ` Edward Peschko
  2004-09-03 23:34     ` Richard Henderson
  0 siblings, 1 reply; 8+ messages in thread
From: Edward Peschko @ 2004-09-03 23:25 UTC (permalink / raw)
  To: Richard Henderson, gcc

On Fri, Sep 03, 2004 at 04:08:53PM -0700, Richard Henderson wrote:
> On Fri, Sep 03, 2004 at 03:35:45PM -0700, Edward Peschko wrote:
> > I'm trying to compile apache/mod_perl with DSO, on solaris 5.8, and am getting
> > 
> > 	/opt/tools/mdss/dev/2.8/bin/ld: libhttpd.ep: hidden symbol `__floatdisf' in /opt/tools/install/bin/../lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/libgcc.a(_floatdisf.oS) is referenced by DSO
> 
> I suspect that you linked using ld, and not with the gcc driver.
> Which would be incorrect.
> 
> r~

given that the command to do the linking was:

/opt/tools/install/bin/gcc -I. -I/opt/tools/mdss/test/2.8/lib/perl5/5.8.5/sun4-sol
aris-64int/CORE -I./os/unix -I./include   -DSOLARIS2=280 -DMOD_PERL -DUSE_PERL_SSI -fno-st
rict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DSHARED_CORE -fno-st
rict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 `./apaci`    \
              -o libhttpd.ep -DSHARED_CORE_TIESTATIC main/http_main.c \
                  -L. -lhttpd  -lsocket -lnsl -lpthread  -Wl,-E  -L/opt/tools/mdss/test/2.
8/lib -R/opt/tools/mdss/test/2.8/lib -L/usr/local/lib  /opt/tools/mdss/test/2.8/lib/perl5/
5.8.5/sun4-solaris-64int/auto/DynaLoader/DynaLoader.a -L/opt/tools/mdss/test/2.8/lib/perl5
/5.8.5/sun4-solaris-64int/CORE -lperl -lsocket -lnsl -ldl -lm -lc

/opt/tools/mdss/dev/2.8/bin/ld: libhttpd.ep: hidden symbol `__floatdisf' in /opt/t
ools/install/bin/../lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/libgcc.a(_floatdisf.oS) is refe
renced by DSO

I don't see how this could have happened. Its a gcc call, right? So the correct gcc
driver should have been used to do the linking automatically.. And if not, why not?

Ed




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-03 23:25   ` Edward Peschko
@ 2004-09-03 23:34     ` Richard Henderson
  2004-09-08  9:26       ` Edward Peschko
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2004-09-03 23:34 UTC (permalink / raw)
  To: Edward Peschko; +Cc: gcc

On Fri, Sep 03, 2004 at 04:17:30PM -0700, Edward Peschko wrote:
> On Fri, Sep 03, 2004 at 04:08:53PM -0700, Richard Henderson wrote:
> > I suspect that you linked using ld, and not with the gcc driver.
> > Which would be incorrect.
> > 
> > r~
> 
> given that the command to do the linking was ...

I did not mean the main application.  I mean that one of the
libraries (against which the main application is being linked)
has already been linked incorrectly.

The error message given doesn't actually say which library is
referencing the symbol in question, but there are only a couple
listed that aren't Solaris system libraries.  Which limits the
possibilities.

Use 'readelf -r libfoo.so | grep __floatdisf' to find out which.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-03 23:34     ` Richard Henderson
@ 2004-09-08  9:26       ` Edward Peschko
  2004-09-08 18:16         ` Richard Henderson
  0 siblings, 1 reply; 8+ messages in thread
From: Edward Peschko @ 2004-09-08  9:26 UTC (permalink / raw)
  To: Richard Henderson; +Cc: gcc

On Fri, Sep 03, 2004 at 04:34:09PM -0700, Richard Henderson wrote:
> On Fri, Sep 03, 2004 at 04:17:30PM -0700, Edward Peschko wrote:
> > On Fri, Sep 03, 2004 at 04:08:53PM -0700, Richard Henderson wrote:
> > > I suspect that you linked using ld, and not with the gcc driver.
> > > Which would be incorrect.
> > > 
> > > r~
> > 
> > given that the command to do the linking was ...
> 
> I did not mean the main application.  I mean that one of the
> libraries (against which the main application is being linked)
> has already been linked incorrectly.
> 
> The error message given doesn't actually say which library is
> referencing the symbol in question, but there are only a couple
> listed that aren't Solaris system libraries.  Which limits the
> possibilities.
> 
> Use 'readelf -r libfoo.so | grep __floatdisf' to find out which.

ok, well I found the symbol (defined) symbol in libhttpd.ep and libhttpd.so.
I went further and found out that it was linked incorrectrly vbthey get to be defined there? I looked 
again at the linking statement, and indeed it was ld:

ld -G ....

I change this to 

gcc -G ...

and it works fine..

So I guess my question is why the need for a separate linker? Why don't 
you always use gcc instead of ld and have it get passed to the right linker?
Why even support binutils as a separate package?

Ed

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-08  9:26       ` Edward Peschko
@ 2004-09-08 18:16         ` Richard Henderson
  2004-09-08 20:08           ` Edward Peschko
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2004-09-08 18:16 UTC (permalink / raw)
  To: Edward Peschko; +Cc: gcc

On Wed, Sep 08, 2004 at 02:18:05AM -0700, Edward Peschko wrote:
> Why don't you always use gcc instead of ld...

We would be delighted if users did so.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-08 18:16         ` Richard Henderson
@ 2004-09-08 20:08           ` Edward Peschko
  2004-09-08 21:16             ` Mike Stump
  0 siblings, 1 reply; 8+ messages in thread
From: Edward Peschko @ 2004-09-08 20:08 UTC (permalink / raw)
  To: Richard Henderson, gcc

On Wed, Sep 08, 2004 at 11:16:22AM -0700, Richard Henderson wrote:
> On Wed, Sep 08, 2004 at 02:18:05AM -0700, Edward Peschko wrote:
> > Why don't you always use gcc instead of ld...
> 
> We would be delighted if users did so.

right, but why not give them an option - whilst installing - to check 
the ld to see if its gnu, move it to ld.old and make a ld link 
pointing to gcc instead?

I would think that that would solve most of the problems transparently.
you probably couldn't make such an option the default.. but who knows..
maybe you could talk to the binutils folks..

Ed

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: errors with hidden symbols and apache
  2004-09-08 20:08           ` Edward Peschko
@ 2004-09-08 21:16             ` Mike Stump
  0 siblings, 0 replies; 8+ messages in thread
From: Mike Stump @ 2004-09-08 21:16 UTC (permalink / raw)
  To: Edward Peschko; +Cc: gcc, Richard Henderson

On Sep 8, 2004, at 1:00 PM, Edward Peschko wrote:
> right, but why not give them an option - whilst installing - to check
> the ld to see if its gnu, move it to ld.old and make a ld link
> pointing to gcc instead?

All the options are different, so, this cannot be done.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-09-08 21:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-03 22:43 errors with hidden symbols and apache Edward Peschko
2004-09-03 23:09 ` Richard Henderson
2004-09-03 23:25   ` Edward Peschko
2004-09-03 23:34     ` Richard Henderson
2004-09-08  9:26       ` Edward Peschko
2004-09-08 18:16         ` Richard Henderson
2004-09-08 20:08           ` Edward Peschko
2004-09-08 21:16             ` Mike Stump

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).