Link tests are not allowed after GCC_NO_EXECUTABLES ---crosscompiling toolchain - c

Iam trying to build a cross compiler using this tutorial:
http://wiki.osdev.org/OS_Specific_Toolchain
after succesfully building binutils,all-gcc,newlib
I am getting an error in the last part of make in build-gcc
checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
Makefile:8970: recipe for target `configure-target-libstdc++-v3' failed
make[1]: *** [configure-target-libstdc++-v3] Error 1
make[1]: Leaving directory `/usr/src/build-gcc'
Makefile:870: recipe for target `all' failed
make: *** [all] Error 2
please help...

I don't know you configure command options. But if you have given --enable-language=c change it to --enable-languages=c. Or may be you are compiling bootstrap with languages c and c++. In which case this error occurs.

I ran into this issue when attempting to build a cross compiler for ARM. Eventually, switched to using crosstool-NG. It is a script that greatly simplifies the process. It worked like a charm for me.

Related

'absl/meta/type_traits.h' file not found

I am currently trying to build the baresip library in order to use it into an Android application. For that, I use the project libbaresip-android and I follow the instructions of the README file.
I am trying to setup a pipeline running on Ubuntu 20.04. From the README file, the steps 1, 2 and 3 seems to work, but my pipeline failed on the step 4 when the script tries to compile webrtc.
The error:
make[2]: Entering directory '/home/vsts/work/1/s/webrtc'
[armeabi-v7a] Compile++ thumb: webrtc <= aecm_core.cc
In file included from jni/src/webrtc/modules/audio_processing/aecm/aecm_core.cc:24:
jni/src/webrtc/rtc_base/checks.h:57:10: fatal error: 'absl/meta/type_traits.h' file not found
#include "absl/meta/type_traits.h"
^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [/usr/local/lib/android/sdk/ndk/21.4.7075529/build/core/build-binary.mk:478: obj/local/armeabi-v7a/objs/webrtc/src/webrtc/modules/audio_processing/aecm/aecm_core.o] Error 1
make[2]: Leaving directory '/home/vsts/work/1/s/webrtc'
make[1]: *** [Makefile:247: webrtc] Error 2
make[1]: Leaving directory '/home/vsts/work/1/s'
make: *** [Makefile:324: install-all] Error 2
##[error]Bash exited with code '2'.
As you can see, this file has the following instruction:
#include "absl/meta/type_traits.h"
I am not a C developer, so I do not know if this include instruction refered to something standard or to a specific file of the project. But the source code does not contain any "adsl" directory.
Should I install something specific on the machine that builds the project? Thank you for your help.
Download abseil library (https://github.com/abseil/abseil-cpp) and put it under third_party folder.

Trouble Installing CompCert C compiler on Ubuntu

I'm installing CompCert C compiler as instructed here: https://compcert.org/man/manual002.html.
However I'm stuck at the stage where I "Run the configure script with appropriate options: ./configure [option …] target "
The console output is:
~/compcert/CompCert-3.8$ ./configure -use-external-MenhirLib x86_64-linux
Testing assembler support for CFI directives... yes
Testing linker support for '-no-pie' / '-nopie' option... yes, '-no-pie'
Testing Coq... version 8.11.0 -- good!
Testing OCaml... version 4.08.1 -- good!
Testing OCaml native-code compiler...yes
Testing OCaml .opt compilers... yes
Testing Menhir... version 20200123 -- good!
Error: cannot determine the location of the Menhir API library.
This can be due to an incorrect Menhir package.
Consider using the OPAM package for Menhir.
Testing GNU make... version 4.2.1 (command 'make') -- good!
One or several required tools are missing or too old. Aborting.
I'm running Ubuntu 20.04 LTS.
[Edit: I managed to run the ./configure. However I cannot reproduce the exact method how I did it. Now I'm stuck in a different part.]
Follow-up question:
When running make all I receive the following output:
/compcert/CompCert-3.8$ make all
make proof
make[1]: Entering directory '/home/user/compcert/CompCert-3.8'
COQC Axioms.v
Error: Can't find file ./Axioms.v
make[1]: *** [Makefile:226: Axioms.vo] Error 1
make[1]: Leaving directory '/home/user/compcert/CompCert-3.8'
make: *** [Makefile:155: all] Error 2
I fixed that problem by copying lib/Axiom.v to the root. The make all then complained about another library in lib/ so I moved a bunch of them until I received the following error:
~/compcert/CompCert-3.8$ make all
make proof
make[1]: Entering directory '/home/user/compcert/CompCert-3.8'
COQC Ordered.v
File "./Ordered.v", line 90, characters 16-19:
Error: The reference int was not found in the current environment.
make[1]: *** [Makefile:226: Ordered.vo] Error 1
make[1]: Leaving directory '/home/user/compcert/CompCert-3.8'
make: *** [Makefile:155: all] Error 2
And now I'm stuck once again.
It seems that you have an incorrect version of the menhirLib. See these lines in the configure script in the build system which lead to this error. I think the problem is that you installed a different version of menhirLib, possibly using your package manager.
I suggest you to run the following commands to install the latest menhirLib from the opam:
opam update
opam install menhir menhirLib
This should help.

Unable to integrate CBMC into build systems

I'm trying to use CBMC (C Bounded Model Checking: https://www.cprover.org/cbmc/) on open-source C projects from GitHub. For the purpose of this question, let's consider the following project: https://github.com/reubenhwk/radvd
The problem arises when I compile the project with gcc. I'm able to obtain the executable file on which call cbmc like
cbmc radvd
but I obtain the following error message:
CBMC version 5.8 64-bit x86_64 linux
failed to open input file radvd`
The reason should be the fact that I used gcc instead of goto-cc (as explained here: http://www.cprover.org/cprover-manual/goto-cc.html), so might it's unable to recognize the file.
I also tried to use goto-cc as explained in the previous link and in some example like http://www.cprover.org/goto-cc/examples/nanosat.html. However, since they are guided examples it seems to be easy to make cbmc work. When I do the same process with other project, like the linked one (radvd) and use goto-cc instead of gcc I obtain the following message when running make CC=goto-cc command:
make all-am
make[1]: Entering directory '/home/stefano/Documents/github/radvd'
YACC gram.c
updating gram.h
CC libradvd_parser_a-gram.o
/usr/include/stdlib.h:133:1: error: syntax error before 'strtof128'
PARSING ERROR
Makefile:941: recipe for target 'libradvd_parser_a-gram.o' failed
make[1]: *** [libradvd_parser_a-gram.o] Error 1
make[1]: Leaving directory '/home/stefano/Documents/github/radvd'
Makefile:755: recipe for target 'all' failed
make: *** [all] Error 2`
I'm currently using the version 5.8 of cbmc on a virtual Linux machine (Ubuntu 17.10).
Do you have any idea on how make it work?
Thank you

kernel source 3.10.0-229.11.1.el7.x86_64 compilation fails

I updated my gcc from 4.8 to 5.2. After updating gcc I am trying to compile kernel with newer gcc. I am getting a compilation issue
make[1]: *** No rule to make target `/usr/src/kernels/3.10.0-229.11.1.el7.x86_64/arch/x86/syscalls/syscall_32.tbl', needed by `arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h'. Stop.
make: *** [archheaders] Error 2
Even after googling several hours. I could not find solution to this problem. Please help!
That target file is part of the source code. Maybe you or someone else deleted it accidentally?

alá insight for windows

I am trying to install insight debugger on my windows 7 machine but without any success.
I installed cygwin full package and I downloaded the source of insight. I am following the steps in this tutorial without any success, I already spent 2 hours trying compiling, but nothing. It always gives me the same error.
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock2.h:632:32:
error: conflicting types for 'select'
/usr/include/sys/select.h:31:5: note: previous declaration of 'select' was here
make[2]: `***` [tclAlloc.o] Error 1
make[2]: Leaving directory '/cygdrive/c/insight-6.1/tcl/win'
make[1]: `***` [all] Error 2
make[1]: Leaving directory '/cygdrive/c/insight-6.1/tcl'
make: `***` [all-tcl] Error 2
I want one debugger like insight to debug my C code linked with my developed assembly to IA-32
OK, so, after very hours spent I think the best I can give is to show you how, I resolved the problem and I posted on my github page.
Hope this helps.

Resources