Re: [LTP] Realtime test failure

Mitani
2010-11-15T05:13:23Z

[-- Attachment #1: Type: text/plain, Size: 5067 bytes --]

> -----Original Message-----
> From: Garrett Cooper [mailto:yanegomi@gmail.com]
> Sent: Monday, November 15, 2010 12:03 PM
> To: Mitani
> Subject: Re: [LTP] Realtime test failure
>
> On Sun, Nov 14, 2010 at 6:54 PM, Mitani <mitani@ryobi.co.jp> wrote:
> > Hi,
> >
> > "realtime" build failed in my system with git "ltp-f388d33.tar.gz":
> > ------------<RHEL4.8 - x86>
> > make[2]: Entering directory
> `/home/LTP/ltp-dev-20101112/testcases/realtime'
> > make -C lib -f
> "/home/LTP/ltp-dev-20101112/testcases/realtime/lib/Makefile"
> > all
> > make[3]: Entering directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/lib'
> > gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -D_GNU_SOURCE
> > -I/home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include
> > -I../../../include -I../../../include -c -o librttest.o librttest.c
> > In file included from librttest.c:43:
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include/librtte
> st.h: In
> > function `atomic_add':
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include/librtte
> st.h:119
> > : warning: implicit declaration of function `__sync_add_and_fetch'
> > gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -D_GNU_SOURCE
> > -I/home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include
> > -I../../../include -I../../../include -c -o libstats.o libstats.c
> > In file included from libstats.c:47:
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include/librtte
> st.h: In
> > function `atomic_add':
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include/librtte
> st.h:119
> > : warning: implicit declaration of function `__sync_add_and_fetch'
> > if [ -z "librttest.o libstats.o" ] ; then \
> > echo "Cowardly refusing to create empty archive"; \
> > exit 1; \
> > fi
> > ar -rc "librealtime.a" librttest.o libstats.o
> > ranlib "librealtime.a"
> > make[3]: Leaving directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/lib'
> > make[3]: Entering directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/func'
> > make[4]: Entering directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/func/async_handler'
> > gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -D_GNU_SOURCE
> > -I/home/LTP/ltp-dev-20101112/testcases/realtime/include
> > -I../../../../include -I../../../../include
> > -L/home/LTP/ltp-dev-20101112/testcases/realtime/lib
> -L../../../../lib
> > async_handler.c -lrealtime -lpthread -lrt -lm -o async_handler
> > In file included from async_handler.c:42:
> > /home/LTP/ltp-dev-20101112/testcases/realtime/include/librttest.h:
> In
> > function `atomic_add':
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/include/librttest.h:11
> 9:
> > warning: implicit declaration of function `__sync_add_and_fetch'
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/librealtime.a(libr
> ttest.o)
> > (.text+0x1a7): In function `create_thread':
> >
> /home/LTP/ltp-dev-20101112/testcases/realtime/lib/../include/librtte
> st.h:119
> > : undefined reference to `__sync_add_and_fetch'
> > collect2: ld returned 1 exit status
> > make[4]: *** [async_handler] Error 1
> > make[4]: Leaving directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/func/async_handler'
> > make[3]: *** [all] Error 2
> > make[3]: Leaving directory
> > `/home/LTP/ltp-dev-20101112/testcases/realtime/func'
> > make[2]: *** [all] Error 2
> > make[2]: Leaving directory
> `/home/LTP/ltp-dev-20101112/testcases/realtime'
> > make[1]: *** [all] Error 2
> > make[1]: Leaving directory `/home/LTP/ltp-dev-20101112/testcases'
> > make: *** [testcases-all] Error 2
> > ------------
> >
> > "realtime" build failed in:
> > ------------
> > RHEL4.8 -- x86, x86_64, ia64
> > RHEL5.4 -- x86
> > ------------
> >
> > "realtime" build succeeded in:
> > ------------
> > RHEL5.4 -- x86_64, ia64
> > ------------
> >
> > It is caused by "__sync_add_and_fetch".
> >
> > In following URL, "__sync_add_and_fetch" is "built-in functions for
> > atomic memory access". And It is provided in "gcc":
> > http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html
> >
> > There is "__sync_add_and_fetch" in gcc4.1.2 (It is the gcc of RHEL5.1
> -
> > RHEL5.4).
> > And there is not "__sync_add_and_fetch" in gcc3.4.6 (It is the gcc of
> > RHEL4.8)
> >
> > In addition, "__sync_add_and_fetch" is for 64 bit environment.
> >
> >
> http://stackoverflow.com/questions/130740/link-error-when-compiling-
> gcc-atom
> > ic-operation-in-32-bit-mode
> >
> > http://gcc.gnu.org/wiki/Atomic
> >
> > Perhaps, the judgment that "realtime" must be built or not depends on
> > gcc's version (> 4.0) and 64 bits environment, I think.
>
> Could you please attach your testcases/realtime/config.log and
> testcases/realtime/include/realtime_config.h ?
> Thanks,
> -Garrett

I understood.
Thank you and sorry for my insufficient information.

I attach following files:
- config.log (RHEL4.8-x86)
- realtime_config.h (RHEL4.8-x86)
- config.log (RHEL5.5-x86)
- realtime_config.h (RHEL5.5-x86)

Thank you--

-Tomonori Mitani

[-- Attachment #2: realtime.zip --]
[-- Type: application/x-zip-compressed, Size: 10704 bytes --]

[-- Attachment #3: Type: text/plain, Size: 362 bytes --]

------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]