Loading ...
Sorry, an error occurred while loading the content.

Re: [nslu2-linux] Problem compiling bonjour on SlugOS 5.3 beta - hidden symbol

Expand Messages
  • Mike Westerhof (mwester)
    ... My first guess would be that your toolchain may be trying to use a different (unsupported) floating-point setting for some reason. Check your compilation
    Message 1 of 3 , Feb 6, 2010
    • 0 Attachment
      jbronsted wrote:
      > Hi
      >
      > Im trying to compile bonjour for SlugOS 5.2 beta on a NSLU2:
      > http://developer.apple.com/opensource/internet/bonjour.html
      >
      > However, ld tells me that the hidden symbol __aeabi_uidiv in libgcc.a is referenced by DSO. Does anybody know what this means and how I can fix it?
      >
      > Kind regards
      > Jeppe
      >
      > Full transcript:
      > root@slug1:~/mDNSResponder-107.6/mDNSPosix# make clean os=linux
      > make[1]: Entering directory `/root/mDNSResponder-107.6/Clients'
      > rm -rf build
      > make[1]: Leaving directory `/root/mDNSResponder-107.6/Clients'
      > root@slug1:~/mDNSResponder-107.6/mDNSPosix# make os=linux
      > Responder daemon done
      > Client library done
      > make[1]: Entering directory `/root/mDNSResponder-107.6/Clients'
      > mkdir build
      > cc dns-sd.c -L../mDNSPosix/build/prod/ -ldns_sd -I../mDNSShared -o build/dns-sd
      > /usr/lib/gcc/armeb-linux-gnueabi/4.2.4/../../../../armeb-linux-gnueabi/bin/ld: build/dns-sd: hidden symbol `__aeabi_uidiv' in /usr/lib/gcc/armeb-linux-gnueabi/4.2.4/libgcc.a(_udivsi3.o) is referenced by DSO
      > /usr/lib/gcc/armeb-linux-gnueabi/4.2.4/../../../../armeb-linux-gnueabi/bin/ld: final link failed: Nonrepresentable section on output
      > collect2: ld returned 1 exit status
      > make[1]: *** [build/dns-sd] Error 1
      > make[1]: Leaving directory `/root/mDNSResponder-107.6/Clients'
      > make: *** [../Clients/build/dns-sd] Error 2
      >

      My first guess would be that your toolchain may be trying to use a
      different (unsupported) floating-point setting for some reason. Check
      your compilation options for consistency; soft float is what it should
      be using. If that's not it, then I would check to see if the compiler
      and libraries perhaps mismatch -- did you get the toolchain from (for
      example) the "unstable" feeds?

      -Mike (mwester)
    • jbronsted
      ... Thanks for the quick reply. Im not entirely sure how I determine which floating-point settings are being used. How do I determine this? I got the toolchain
      Message 2 of 3 , Feb 8, 2010
      • 0 Attachment
        --- In nslu2-linux@yahoogroups.com, "Mike Westerhof (mwester)" <mwester@...> wrote:
        > My first guess would be that your toolchain may be trying to use a
        > different (unsupported) floating-point setting for some reason. Check
        > your compilation options for consistency; soft float is what it should
        > be using. If that's not it, then I would check to see if the compiler
        > and libraries perhaps mismatch -- did you get the toolchain from (for
        > example) the "unstable" feeds?
        >
        > -Mike (mwester)

        Thanks for the quick reply.

        Im not entirely sure how I determine which floating-point settings are being used. How do I determine this?

        I got the toolchain from the stable feeds (using opkg).

        I have tracked the error to the compilation or linkage of the library 'libdns_sd'. To make this library, make issues the following commands:

        gcc -I. -I../mDNSCore -I../mDNSShared -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -Os -DMDNS_DEBUGMSGS=0 -c -fPIC -o objects/prod/dnssd_clientlib.c.so.o ../mDNSShared/dnssd_clientlib.c
        gcc -I. -I../mDNSCore -I../mDNSShared -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -Os -DMDNS_DEBUGMSGS=0 -c -fPIC -o objects/prod/dnssd_clientstub.c.so.o ../mDNSShared/dnssd_clientstub.c
        gcc -I. -I../mDNSCore -I../mDNSShared -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -Os -DMDNS_DEBUGMSGS=0 -c -fPIC -o objects/prod/dnssd_ipc.c.so.o ../mDNSShared/dnssd_ipc.c
        ld -shared -o build/prod/libdns_sd.so objects/prod/dnssd_clientlib.c.so.o objects/prod/dnssd_clientstub.c.so.o objects/prod/dnssd_ipc.c.so.o
        strip -S build/prod/libdns_sd.so

        I appears that no errors occur in this process, but when I use the produced library, I get the __aeabi_uidiv error.

        As far as I can see, there is nothing out of the ordinary in the commands above.

        uname -a yields:
        Linux slug1 2.6.27.8 #1 Sat Mar 7 02:47:23 UTC 2009 armv5teb unknown unknown GNU/Linux

        file on the produced lib yields:
        file /usr/lib/libdns_sd.so.1
        /usr/lib/libdns_sd.so.1: ELF 32-bit MSB shared object, ARM, version 1 (SYSV), not stripped

        gcc version:
        gcc (GCC) 4.2.4

        Kind regards
        Jeppe
      Your message has been successfully submitted and would be delivered to recipients shortly.