Re: Can you give me a suggestion for how to compile size kselftest?

From: long.wanglong
Date: Sun Sep 27 2015 - 22:22:34 EST


On 2015/9/25 4:02, Bird, Tim wrote:
> On Wednesday, September 23, 2015 8:26 PM, long.wanglong [long.wanglong@xxxxxxxxxx] wrote:
>>
>> Hi, tim
>>
>> Could you help me with the following problem?
>>
>> On my x86_64 system, I can not compile the size kselftest, the output is:
>>
>> for TARGET in size; do \
>> make -C $TARGET; \
>> done;
>> make[2]: Entering directory `/home/wanglong/linux-mainline/tools/testing/selftests/size'
>> gcc -static -ffreestanding -nostartfiles -s get_size.c -o get_size
>> /usr/bin/ld: cannot find -lc
>> collect2: error: ld returned 1 exit status
>> make[2]: *** [get_size] Error 1
>> make[2]: Leaving directory `/home/wanglong/linux-mainline/tools/testing/selftests/size'
>> make[1]: *** [all] Error 2
>> make: *** [kselftest] Error 2
>>
>>
>> But, with the following command:
>> # cd tools/testing/selftests/size
>> # gcc -ffreestanding -nostartfiles -s get_size.c -o get_size
>> its ok.
>>
>> My GCC is:
>>
>> $ gcc -v
>> Using built-in specs.
>> COLLECT_GCC=gcc
>> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
>> Target: x86_64-redhat-linux
>> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
>> Thread model: posix
>> gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
>>
>>
>> I google `/usr/bin/ld: cannot find -lc`, but it did not help me more.
>>
>> Could you please help me?
>
> The problem is that you are missing the version of the C library for static linking. This should be in one of
> your C library directories, with the name libc.a (not libc.so, which is the shared object library for dynamic linking).
> Sometimes the static libraries are built as separate packages.
>
>
> It looks like you need to install the 'glibc-static' development package.
>
> See http://rpmfind.net//linux/RPM/fedora/devel/rawhide/x86_64/g/glibc-static-2.22.90-6.fc24.x86_64.html
>
> Let me know if that solves the problem for you (or not).
> -- Tim

Hi Tim,

Thanks for you reply.

The reason I can not compile successfully is that, so far, the kselftests does not support -O option.

When I compile kernel without -O option, the size unit test can compile successfully.

so I hope the kselftests will support standard kernel options:

1ïSeparate out directory ïKBUILD_OUTPUT supportï
2ïVerbose vs quiet building ïV=1 supportï

Best Regards
Wang Long

>
> .
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/