Re: [Fuego] aarch64-linux-gnu-g++: error: unrecognized command line option '-V'

"Bird, Tim" <[email protected]> Wed, 26 Aug 2020 20:22:39 +0000
Newsgroups dev.linux.lists.fuego
Message-ID <CY4PR13MB1175F65F88AC1FEC7AC6A3B4FD540@CY4PR13MB1175.namprd13.prod.outlook.com>

> -----Original Message-----
> From:  Daniel Lin
> 
> Hi Tim & all,
> 
> Currently I encounter the following error.
> First of all, all test cases can be compiled and ran successfully.
> But I didn’t know why encounter errors, is it gcc too new?
> 
> Thanks
> Daniel Lin
> 
> 
> 
> Started by user unknown or anonymous
> [EnvInject] - Loading node environment variables.
> Building remotely on evb_ddr4_89 <http://10.34.33.142:8090/fuego/computer/evb_ddr4_89>  in workspace /fuego-rw/buildzone
> [buildzone] $ /bin/sh -xe /tmp/jenkins5214881772987557194.sh
> + export FUEGO_CALLER=jenkins
> + FUEGO_CALLER=jenkins
> + ftc run-test -b evb_ddr4_89 -t Benchmark.cyclictest -s default --timeout 6m --reboot false --rebuild false --precleanup true --postcleanup
> true
> Running test 'Benchmark.cyclictest' on board 'evb_ddr4_89' using spec 'default'
> ===== doing fuego phase: pre_test =====
> /proc/config.gz not found, trying /boot/config-4.9.38-00075-g041b5f8
> /boot/config-4.9.38-00075-g041b5f8 not found
> Checking cfg: [CONFIG_RT_GROUP_SCHED=y]
> grep: /fuego-rw/logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/kconfig: No such file or directory
> 2
> ===== doing fuego phase: build =====
> Unpacking ../rt-tests/rt-tests-v1.1.1.tar.gz
> aarch64-linux-gnu-gcc -D VERSION=1.1 -c src/cyclictest/cyclictest.c -Wall -Wno-nonnull -O2 -D_GNU_SOURCE -Isrc/include -o
> bld/cyclictest.o
> src/cyclictest/cyclictest.c: In function 'timerthread':
> src/cyclictest/cyclictest.c:427:30: warning: '*((void *)&stop+8)' may be used uninitialized in this function [-Wmaybe-uninitialized]
>   diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
>                               ^~~~~~~~~~~~~~~~
> src/cyclictest/cyclictest.c:980:39: note: '*((void *)&stop+8)' was declared here
>   struct timespec now, next, interval, stop;
>                                        ^~~~
> src/cyclictest/cyclictest.c:426:54: warning: 'stop.tv_sec' may be used uninitialized in this function [-Wmaybe-uninitialized]
>   diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec);
>                                                       ^~~~~~~~~~~~~~~
> src/cyclictest/cyclictest.c:980:39: note: 'stop.tv_sec' was declared here
>   struct timespec now, next, interval, stop;
>                                        ^~~~

You can ignore these warnings.

> aarch64-linux-gnu-gcc -D VERSION=1.1 -c src/lib/error.c -Wall -Wno-nonnull -O2 -D_GNU_SOURCE -Isrc/include -o bld/error.o
> aarch64-linux-gnu-gcc -D VERSION=1.1 -c src/lib/rt-get_cpu.c -Wall -Wno-nonnull -O2 -D_GNU_SOURCE -Isrc/include -o bld/rt-get_cpu.o
> aarch64-linux-gnu-gcc -D VERSION=1.1 -c src/lib/rt-sched.c -Wall -Wno-nonnull -O2 -D_GNU_SOURCE -Isrc/include -o bld/rt-sched.o
> aarch64-linux-gnu-gcc -D VERSION=1.1 -c src/lib/rt-utils.c -Wall -Wno-nonnull -O2 -D_GNU_SOURCE -Isrc/include -o bld/rt-utils.o
> aarch64-linux-gnu-ar rcs bld/librttest.a bld/error.o bld/rt-get_cpu.o bld/rt-sched.o bld/rt-utils.o
> aarch64-linux-gnu-gcc -Wall -Wno-nonnull -O2 --sysroot /usr/aarch64-linux-gnu -lm -o cyclictest bld/cyclictest.o -lrt -lpthread -lrttest -Lbld

This is the line that is actually failing, in the build.

(I'm a bit confused by your subject line, I don't see the message
   "error: unrecognized command line option '-V"
anywhere in the build log.)


> /usr/lib/gcc-cross/aarch64-linux-gnu/6/../../../../aarch64-linux-gnu/bin/ld: cannot find /usr/aarch64-linux-gnu/lib/libpthread.so.0 inside
> /usr/aarch64-linux-gnu
> /usr/lib/gcc-cross/aarch64-linux-gnu/6/../../../../aarch64-linux-gnu/bin/ld: cannot find /usr/aarch64-linux-gnu/lib/libpthread_nonshared.a
> inside /usr/aarch64-linux-gnu
> collect2: error: ld returned 1 exit status
You seem to be missing libpthread for this architecture.

Your SDK seems incomplete.

Where did you get your aarch64 SDK?

I have two different aarch64 (arm64) SDKs on my
system, one from yocto, and one from Debian stretch, and they both seem to work fine
to build Benchmark.cyclictest.

I installed the Debian one inside the container with this command:
 $ cd /fuego-ro/toolchains ; ./install_cross_toolchain.sh arm64

 -- Tim

> Makefile:107: recipe for target 'cyclictest' failed
> make: *** [cyclictest] Error 1
> In Fuego signal_handler (due to error in build phase)
> ##### doing fuego phase: post_test (from signal handler) #####
> scp: /mnt/data/home/a/fuego.Benchmark.cyclictest/Benchmark.cyclictest.log: No such file or directory
> INFO: the test did not produce a test log on the target
> ##### doing fuego phase: processing (from signal handler) #####
> ### WARNING: Program returned exit code ''
> ### WARNING: Log evaluation may be invalid
> !!! ERROR: No value in check_measure - returning SKIP
> !!! ERROR: No value in check_measure - returning SKIP
> !!! ERROR: No value in check_measure - returning SKIP
> ERROR: results did not satisfy the threshold
> Build step 'Execute shell' marked build as failure
> [description-setter] Description set:  <a
> href="/fuego/userContent/fuego.logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/testlog.txt">testlog</a> <a
> href="/fuego/userContent/fuego.logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/run.json">run.json</a> <a
> href="/fuego/userContent/fuego.logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/consolelog.txt">fuegolog</a> <a
> href="/fuego/userContent/fuego.logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/devlog.txt">devlog</a> <a
> href="/fuego/userContent/fuego.logs/Benchmark.cyclictest/evb_ddr4_89.default.89.89/prolog.sh">prolog.sh</a>
> Finished: FAILURE
> 
>