Bug 4892

Summary: build fails on ltp-testsuite-20101031/testcases/kernel/fs/ftest/ftest04.c:146: undefined reference to `sigset'
Product: buildroot Reporter: austinenglish <austinenglish>
Component: OtherAssignee: unassigned
Status: RESOLVED WONTFIX    
Severity: minor CC: buildroot
Priority: P5    
Version: 2012.02   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:
Attachments: .config used

Description austinenglish@gmail.com 2012-03-08 02:20:57 UTC
Created attachment 4112 [details]
.config used

/home/austin/buildroot-2012.02/output/host/usr/bin/i586-unknown-linux-uclibc-gcc   -L../../../../lib  ftest04.o libftest.o   -lltp -o ftest04
ftest04.o: In function `setup':
/home/austin/buildroot-2012.02/output/build/ltp-testsuite-20101031/testcases/kernel/fs/ftest/ftest04.c:146: undefined reference to `sigset'

not sure what other info is useful. Running on 32-bit gentoo linux. I've attached the .config file.

Please let me know what other information would be useful:
austin@aw25 ~/buildroot-2012.02 $ gcc --version
gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

austin@aw25 ~/buildroot-2012.02 $ uname -a
Linux aw25 2.6.37 #1 SMP Thu Apr 21 17:36:51 PDT 2011 i686 Intel(R) Core(TM) i7 CPU 960 @ 3.20GHz GenuineIntel GNU/Linux
Comment 1 Thomas Petazzoni 2012-03-08 08:24:59 UTC
Thanks for your bug report.

The help text of the ltp-testsuite package says:

"""
          The LTP testsuite uses several functions that are considered
          obsolete, such as sigset() and others. Therefore, the LTP
          testsuite does not build with Buildroot's default uClibc
          configuration, and options such as
          UCLIBC_HAS_OBSOLETE_BSD_SIGNAL are needed.
"""

So, it is well-known that ltp-testsuite doesn't build with our default uClibc configuration. You must add the uCLIBC_HAS_OBSOLETE_BSD_SIGNAL option to it. So you should do:

make clean
make uclibc-menuconfig
# add the UCLIBC_HAS_OBSOLETE_BSD_SIGNAL option
make

and then it should work.

A good improvement would be to adapt ltp-testsuite so that if sigset() isn't available, it doesn't try to use it.