Subject: Re: 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:46:23 +0200

Additional info about the statements that it happens with big object
files:
$ d gucharmap-unicode-info.o
rw-r--r--  #gerrit:Admins  3.9M  Oct 25 19:27  gucharmap-unicode-info.o
1 regular files, with a total size of 3.9M.

May be that is just too big?

Gerrit

> 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/