Link tests are not allowed after GCC_NO_EXECUTABLES

Programming, for all ages and all languages.
Post Reply
rianquinn
Posts: 16
Joined: Thu Jan 21, 2010 9:31 pm

Link tests are not allowed after GCC_NO_EXECUTABLES

Post by rianquinn »

I am trying to get GCC up and running so that I can add C++ STL support to my kernel. I have my own custom ELF loader to load my kernel already working, as well as some basic libc code, global constructor support, no-red-zone turned off, basic first fit memory manager, and a bunch of C++ specific symbols that were needed to get C++ working. As a result I already have a bunch of C++ code starting up and working great.

I'd rather not recreate the STL if I don't have to, but it makes sense to me add support for things like std::unique_map, std::vector, etc.... so I am in the process of trying to get libstdc++-v3 to compile. I am using: http://wiki.osdev.org/Hosted_GCC_Cross-Compiler as my current guide but I am running into the following issue:

Code: Select all

make all-target-libstdc++-v3
...
checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
I will admit that at the moment, I have only included the bare minimum that this tutorial calls for as I am just interested in seeing what it takes to get libstc++v3 working. Does anyone have an idea as to why this would be occurring?

Here is my current script for setting up GCC: https://github.com/Bareflank/hypervisor ... ompiler.sh

The only change to this script so far is I have added --with-sysroot=$HOME/sysroot to the binutils and gcc configure options, and I have added to my sysroot, the header files defined in the above link for setting up GCC.

Anyone have any idea why I might be getting this error?

Thanks a ton
- Rian
Attachments
config.log.txt
(28.97 KiB) Downloaded 136 times
heat
Member
Member
Posts: 103
Joined: Sat Mar 28, 2015 11:23 am
Libera.chat IRC: heat

Re: Link tests are not allowed after GCC_NO_EXECUTABLES

Post by heat »

rianquinn wrote:I am trying to get GCC up and running so that I can add C++ STL support to my kernel. I have my own custom ELF loader to load my kernel already working, as well as some basic libc code, global constructor support, no-red-zone turned off, basic first fit memory manager, and a bunch of C++ specific symbols that were needed to get C++ working. As a result I already have a bunch of C++ code starting up and working great.

I'd rather not recreate the STL if I don't have to, but it makes sense to me add support for things like std::unique_map, std::vector, etc.... so I am in the process of trying to get libstdc++-v3 to compile. I am using: http://wiki.osdev.org/Hosted_GCC_Cross-Compiler as my current guide but I am running into the following issue:

Code: Select all

make all-target-libstdc++-v3
...
checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
I will admit that at the moment, I have only included the bare minimum that this tutorial calls for as I am just interested in seeing what it takes to get libstc++v3 working. Does anyone have an idea as to why this would be occurring?

Here is my current script for setting up GCC: https://github.com/Bareflank/hypervisor ... ompiler.sh

The only change to this script so far is I have added --with-sysroot=$HOME/sysroot to the binutils and gcc configure options, and I have added to my sysroot, the header files defined in the above link for setting up GCC.

Anyone have any idea why I might be getting this error?

Thanks a ton
- Rian
I think you are very early in development to have a hosted GCC compiler. A hosted GCC compiler is for compiling user programs that target your OS. Unless you already have user-space support, you should use a bare-bones instead. You can compile the kernel with a hosted gcc, but as it's more targeted to user-space, you should do it later when you are adding support for user-space.

Now for the error part. You are compiling libstdc++v3. It has a bunch of dependencies, you are not able to satisfy. One critical example is the heap. Your problem is that you don't have dlopen(), and it's a dependency for libstdc++v3. You can go hack around the makefiles, but once you solve that error, certainly more errors will come up.

Better explanation (gcc mailing list): https://gcc.gnu.org/ml/gcc/2008-03/msg00515.html
If some of you people keep insisting on having backwards compatibitity with the stone age, we'll have stone tools forever.
My Hobby OS: https://github.com/heatd/Onyx
Techel
Member
Member
Posts: 215
Joined: Fri Jan 30, 2015 4:57 pm
Location: Germany
Contact:

Re: Link tests are not allowed after GCC_NO_EXECUTABLES

Post by Techel »

I have the same problem when configuring libstdc++ to build just libsupc++. Is anybody here who has successfully built libsupc++ and reveal details?
User avatar
kotovalexarian
Member
Member
Posts: 38
Joined: Tue Nov 24, 2020 10:17 am
Contact:

Re: Link tests are not allowed after GCC_NO_EXECUTABLES

Post by kotovalexarian »

I have the same problem. The following messages seemed to help me:
Just comment out AC_LIBTOOL_DLOPEN in file libstdc++-v3/configure.ac.

UPD: No, this doesn't help.

UPD2: No, commenting out GCC_NO_EXECUTABLES doesn't help too.
Post Reply