Re: Cyclictest compile error when cross compiling for AT91SAM9260

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/27/12 01:23, Forconi wrote:
> Hi, 
> I made a cleanup and a fresh clone of the git repository.
> 
> This is what I get running make:
> 
> $ make CC=arm-unknown-linux-gnu-gcc
> src/pi_tests/pip_stress.c:240:2: error: #error _POSIX_THREAD_PROCESS_SHARED is not defined
> src/pi_tests/pi_stress.c:78:2: error: #error "Can't run this test without PI Mutex support"
> arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/cyclictest/cyclictest.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2
> src/cyclictest/cyclictest.c: In function 'timerthread':
> src/cyclictest/cyclictest.c:700: warning: implicit declaration of function 'pthread_setaffinity_np'
> arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/lib/rt-utils.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2
> arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/lib/error.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2
> arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/lib/rt-get_cpu.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2
> ar rcs librttest.a rt-utils.o error.o rt-get_cpu.o
> arm-unknown-linux-gnu-gcc -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2  -o cyclictest cyclictest.o librttest.a -lrt -lpthread -lrttest -L. 
> cyclictest.o: In function `timerthread':
> cyclictest.c:(.text+0x17ac): undefined reference to `pthread_setaffinity_np'
> collect2: ld returned 1 exit status
> make: *** [cyclictest] Error 1
> 
> It seems that the pthread_setaffinity_np is missing in pthread library (maybe I have an old lib?)


These errors look possibly more reasonable than the original errors.  And possibly
just lack of support for the features as you suggest with "maybe I have an old lib".
Another possibility is that your cross tools are not pulling in the right header
files and libraries.


(1) pip_stress.c:240:2: error: #error _POSIX_THREAD_PROCESS_SHARED is not defined

Your environment is missing the feature.  If it existed, _POSIX_THREAD_PROCESS_SHARED
would be defined in the <bits/posix_opt.h> that your cross tools are pulling in.
The include chain is:

   src/pi_tests/pip_stress.c
      src/include/pip_stress.h
         <unistd.h>
            <bits/posix_opt.h>

If you think the header files from your cross tools should define _POSIX_THREAD_PROCESS_SHARED
then you can verify which header file is used for <bits/posix_opt.h> by:

   arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/pi_tests/pip_stress.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2 -C -E >junk_pip_stress
   grep posix_opt.h junk_pip_stress


(2) cyclictest.c:700: warning: implicit declaration of function 'pthread_setaffinity_np'

Your environment is missing the feature.  If it existed, pthread_setaffinity_np() would
be defined in <pthread.h>.  This warning is consistent with your pthread library not
having pthread_setaffinity_np(), which is reported by the link error
"undefined reference to `pthread_setaffinity_np'".

You can verify which header file is used for <pthread.h> by:

   arm-unknown-linux-gnu-gcc -D VERSION_STRING=0.84 -c src/cyclictest/cyclictest.c -D_GNU_SOURCE -Wall -Wno-nonnull -Isrc/include -O2 -C -E >junk_cyclictest
   grep pthread.h junk_cyclictest

If you think your pthread library should include this feature, then verify which
pthread library the linker is pulling in.

-Frank


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux