Hi Jonathan! Thanks for the answer. On 4/12/24 17:14, Jonathan Wakely via Gcc-help wrote: > On Fri, 12 Apr 2024, 15:26 Johannes Krottmayer via Gcc-help, < > gcc-help@gcc.gnu.org> wrote: > >> Hi! >> >> Sorry if already asked, but what are the differences from as example >> x86_64-none-elf and x86_64-linux-gnu configurations? >> > The former is a bare metal "freestanding" target that generates code for a > system without an OS or C library. The latter is a "hosted" target that > uses the Linux kernel and Glibc C library. > I already did know that. The *-none-elf configurations I primarily use them in my own embedded projects. But there seems for me, there are more differences. >> I have tried to compile Linux with a x86_64-none-elf build, but failed with >> assembler errors. (It's might be also a binutils question.) With the >> x86_64-linux-gnu build, everything worked fine. >> > > You need a binutils configured for x86_64-none-elf to assemble and link > co de compiled for that target. Yes, the binutils are configured as *-none-elf. For my projects these configuration works fine. But I'm wondering why the x86_64-none-elf build didn't work when I try to compile the Linux kernel. AFAIK, Linux use it's own libc and also some functions from libgcc. So I have thought there must be another differences. Like how comments are interpreted, as example (The assembler error, when I try to build Linux with a x86_64-none-elf is inner a comment.). Currently I have only compared the Makefile from GCC after configuration, and only seen that additional _GNU_SOURCE is defined in the *-linux-gnu configuration. > >> Can somebody explain me the key differences between this both builds? >> Unfortunately I currently didn't find any information. >> >> Thanks in advance! >> >> Kind regards, >> >> Johannes >>