Subject: binutils: Strange ld error: Error: 0-bit reloc in dll
From: "Gerrit P. Haase" <[email-masked]>
To: [email-masked]
Date: Sat, 25 Oct 2003 21:27:01 +0200

Hallo,

I'm getting a 'I've never seen before' ld error:
 Error: 0-bit reloc in dll

Libtool issues the link command like this:
gcc -shared \
 $(OBJECTS) \
 -L/usr/lib \
 -L/usr/X11R6/lib $(LIBS) \
 -Wl,--export-dynamic \
 -Wl,--export-dynamic \
 -o .libs/cyggucharmap-3.dll \
 -Wl,--image-base=0x10000000 \
 -Wl,--out-implib,.libs/libgucharmap.dll.a
Error: 0-bit reloc in dll
Creating library file: .libs/libgucharmap.dll.a
collect2: ld returned 1 exit status
make[3]: *** [libgucharmap.la] Error 1
  
I tried to reorder the command, I tried to add some switches like
--export-all-symbols and -no-whole-archive, but it doesn't help.

A google search shows only one hit of interest:

http://article.gmane.org/gmane.comp.gnu.mingw.user/7425
where Danny Smith wrote at 29 May 2003:
>> gcc.exe -shared -Wl,--out-implib,libfoo.a -o foo.dll foo.o
>> Error: 0-bit reloc in dll
>> 
>> Any idea what I should look for to work around this issue?
>> 
> Did you use -r (or --relocateable) to construct the object?
> What version of ld?
> 
> The -r bug should be fixed in latest relwase candidade of binutils.
> Danny

Any ideas?  Was the '-r bug' which Danny fixed in the MinGW binutils
release candidate not fixed in the Cygwin binutils release, or is it
already included in the latest Cygwin binutils release?

I'm also not sure what is meant with 'Did you use -r ...', should I
use it or is there the bug and I shouldn't use it?

What I did at last was to change '-g -O2' to '-O2' to reduce the size
of the objects, because it was suggested in some other postings I
found that it happens only with big object files and I added the -r
flag to compile the objects for the dynamic library which results in
the same 'Error: 0-bit reloc in dll'.

Is it neccessary to recompile all the 25 libraries (which I need to
link the application to) with the -r switch?

Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/