undefined reference to 'nanosleep'

André Neves andre-c-neves at criticalsoftware.com
Wed Sep 12 13:26:34 UTC 2007


First of all sorry for forgetting the subject.
Bah, not helpful. >_<

On Wed, September 12, 2007 13:48, Ralf Corsepius wrote:
> On Wed, 2007-09-12 at 12:20 +0100, André Neves wrote:
>> Hi all.
>>
>> I cave in and admit that the system outsmarted me.
>> Here goes newbie question. :)
>> Compiling RTEMS for a LEON2 simulator in a Linux (Ubuntu 7.04) machine.
>> autoconf 2.61, automake 1.10, gcc 4,1,2.
>>
>> I'm in the last step of the compilation described in the wiki's Quick
>> Start:
>> > cd rtems
>> > export PATH=/opt/rtems-4.8/bin:$PATH
>> > ./bootstrap
>> > cd ..
>> > mkdir b-sis
>> > cd b-sis
>> > ../rtems/configure
>
>> --target=sparc-rtems
>            ^^^^^^^^^^^
> This must match with the target you used to build your toolchain.
>
>>  --enable-rtemsbsp=sis
>> --enable-tests=samples --disable-posix --disable-itron
>> > make
>>
>> Doing 'make all'.
>> > (...)
>> > Making all in capture
>> > make[5]: Entering directory
>> `/home/ac-neves/workdir/sparc-rtems/c/leon2/testsuites/samples/capture'
>> > sparc-rtems-gcc -B../../../../../leon2/lib/ -specs bsp_specs -qrtems
> ^^^^^^ ^^^^^^^^^^^^
>
> OK, so you, for reason being incomprehensible to me used
> --target=sparc-rtems

The wiki Quick Start page said to use
--target=sparc-rtems4.8

It was making some part of my compilation fail, and my internship tutor
had a look at it and said that probably dropping the "4.8" would make it
work. So i used
--target=sparc-rtems
instead, to see if that would solve the problem.
It did, and so i went and edited the wiki accordingly.
If i did wrong, please edit it back into the correct option·

(Low) personal experience says the right option is the one I used, expert
says what I used makes no sense.
Hmm... I don't know what should be there. I know no other option. :)

>
>> -mcpu=cypress -msoft-float -O2 -g      -o capture.exe init.o test1.o
>> > ../../../../../leon2/lib/librtemscpu.a(libposix_a-usleep.o): In
>> function
>> `usleep':
>> > /home/ac-neves/workdir/sparc-rtems/c/leon2/cpukit/posix/../../../../../../rtems-leon2/c/src/../../cpukit/posix/src/usleep.c:29:
>> undefined reference to `nanosleep'
>> > collect2: ld returned 1 exit status
>> > make[5]: *** [capture.exe] Error 1
>> > make[5]: Leaving directory
>> `/home/ac-neves/workdir/sparc-rtems/c/leon2/testsuites/samples/capture'
>> > (...)
>>
>> I've been trying to fix it myself, but failed to understand how
>> everything
>> is well except for nanosleep.
>> Can something not have been included properly?
> Have you build newlib?
>
> Ralf
>
>
>

Hmm... libnewlib-dev was missing.
(Like libc-dev was missing, and manpages-dev was missing. o_O I'm starting
to dislike this Kubuntu.)

I installed it, but there was no change, i get the same error on 'make all'.


So:
- i didn't have [lib]newlib[-dev], but that didn't change anything;
- weird '--target=sparc-rtems';
- still "undefined reference to 'nanosleep'" when 'make all'.

I hope I'm not being too cryptic or... undefined.
 Andre´ Neves


ps: I found some minor errors in the online documentation. How should i
report/fix that sort of things?





More information about the users mailing list