Compile the OS specific toolchain

This commit is contained in:
Alex 2022-12-07 17:08:15 +02:00
parent 59dfe30d64
commit 0f11f3f70c
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD
7 changed files with 6464 additions and 9 deletions

View File

@ -81,6 +81,41 @@ jobs:
if: steps.cache-cross.outputs.cache-hit != 'true' if: steps.cache-cross.outputs.cache-hit != 'true'
run: make --quiet -C tools do_gccarm64 run: make --quiet -C tools do_gccarm64
buildtoolchaincompiler:
name: Build Toolchain Cross-Compiler (GCC)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Cache cross Folder
id: cache-cross
uses: actions/cache@v3.0.10
with:
path: tools/cross
key: ${{ runner.os }}-cross-${{ hashFiles('tools/Makefile') }}
- name: Update System
if: steps.cache-cross.outputs.cache-hit != 'true'
run: sudo apt-get update
- name: Install GCC Dependencies
if: steps.cache-cross.outputs.cache-hit != 'true'
run: sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo libzstd-dev libisl-dev autoconf m4 automake gettext gperf dejagnu guile-3.0 guile-3.0-dev expect tcl autogen tex-common sphinx-common git ssh diffutils patch -y
- name: Prepare Toolchain
if: steps.cache-cross.outputs.cache-hit != 'true'
run: make --quiet -C tools do_prep_toolchain
- name: Compile Toolchain Binutils
if: steps.cache-cross.outputs.cache-hit != 'true'
run: make --quiet -C tools do_toolchain_binutils64
- name: Compile Toolchain GCC
if: steps.cache-cross.outputs.cache-hit != 'true'
run: make --quiet -C tools do_toolchain_gcc64
compilegnuefi: compilegnuefi:
name: Build GNU-EFI name: Build GNU-EFI
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -111,7 +146,7 @@ jobs:
analyze: analyze:
name: Analyze with CodeQL name: Analyze with CodeQL
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [buildcompiler, compilegnuefi] needs: [buildcompiler, compilegnuefi, buildtoolchaincompiler]
permissions: permissions:
actions: read actions: read
contents: read contents: read
@ -171,7 +206,7 @@ jobs:
compile64: compile64:
name: Build amd64 name: Build amd64
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [buildcompiler, compilegnuefi] needs: [buildcompiler, compilegnuefi, buildtoolchaincompiler]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -180,7 +215,7 @@ jobs:
- name: Update & Install Required Packages - name: Update & Install Required Packages
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine make --quiet -C tools do_limine
make --quiet -C Drivers prepare make --quiet -C Drivers prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
@ -216,7 +251,7 @@ jobs:
compile32: compile32:
name: Build i686 name: Build i686
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [buildcompiler, compilegnuefi] needs: [buildcompiler, compilegnuefi, buildtoolchaincompiler]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -225,7 +260,7 @@ jobs:
- name: Update & Install Required Packages - name: Update & Install Required Packages
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine make --quiet -C tools do_limine
make --quiet -C Drivers prepare make --quiet -C Drivers prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare
@ -267,7 +302,7 @@ jobs:
compilearm64: compilearm64:
name: Build aarch64 name: Build aarch64
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [buildcompiler, compilegnuefi] needs: [buildcompiler, compilegnuefi, buildtoolchaincompiler]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -276,7 +311,7 @@ jobs:
- name: Update & Install Required Packages - name: Update & Install Required Packages
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y sudo apt-get install rustc xorriso mtools genisoimage ovmf nasm doxygen make gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 mingw-w64 -y
make --quiet -C tools do_limine make --quiet -C tools do_limine
make --quiet -C Drivers prepare make --quiet -C Drivers prepare
make --quiet -C Userspace prepare make --quiet -C Userspace prepare

2
.gitignore vendored
View File

@ -12,6 +12,8 @@ tools/*
!tools/*.c !tools/*.c
!tools/*.cpp !tools/*.cpp
!tools/*.cfg !tools/*.cfg
!tools/toolchain-binutils-gdb.patch
!tools/toolchain-gcc.patch
doxygen-doc doxygen-doc
initrd.tar.gz initrd.tar.gz
.dccache .dccache

View File

@ -25,10 +25,13 @@
"kernel.h": "c" "kernel.h": "c"
}, },
"cSpell.words": [ "cSpell.words": [
"AABBCC",
"AAFFAA", "AAFFAA",
"ACPINVS",
"AHCI", "AHCI",
"apic", "apic",
"APICID", "APICID",
"archaux",
"auxv", "auxv",
"binfo", "binfo",
"Bootloader", "Bootloader",
@ -36,14 +39,21 @@
"COMNULL", "COMNULL",
"cpudata", "cpudata",
"CPUID", "CPUID",
"crashdata",
"cutlim",
"Didx", "Didx",
"DLAB", "DLAB",
"Drivermemcpy", "Drivermemcpy",
"Drivermemset", "Drivermemset",
"drvdir", "drvdir",
"DUID", "DUID",
"EFER",
"Ehdr",
"ELFCLASS",
"EXECFN",
"exobyte", "exobyte",
"FAFAFA", "FAFAFA",
"FAFAFAI",
"Fargc", "Fargc",
"Fargv", "Fargv",
"fctprintf", "fctprintf",
@ -53,34 +63,56 @@
"filestatus", "filestatus",
"Framebuffer", "Framebuffer",
"fxrstor", "fxrstor",
"fxsave",
"geopbyte", "geopbyte",
"hwaddress", "hwaddress",
"inportb", "inportb",
"invlpg",
"ioapic", "ioapic",
"IPCID", "IPCID",
"iretq",
"isdelim",
"itrfb", "itrfb",
"KAPI", "KAPI",
"kfree", "kfree",
"kmalloc", "kmalloc",
"kproc",
"kthrd",
"lapic", "lapic",
"lgdt",
"liballoc", "liballoc",
"limine",
"LMSLE", "LMSLE",
"LSTAR",
"MADT", "MADT",
"memmap",
"memsz",
"movw",
"MSRID",
"MWAIT", "MWAIT",
"OEMID", "OEMID",
"OSFXSR", "OSFXSR",
"OSXMMEXCPT", "OSXMMEXCPT",
"OSXSAVE", "OSXSAVE",
"outportb", "outportb",
"PAGESZ",
"PCIDE", "PCIDE",
"PDBR", "PDBR",
"PDPTE",
"PEXIT", "PEXIT",
"PFLA", "PFLA",
"pheader",
"PHENT",
"phentsize",
"phnum",
"phoff",
"pushfq",
"rdmsr", "rdmsr",
"readcr", "readcr",
"Rodata", "Rodata",
"serialports", "serialports",
"sgdt", "sgdt",
"showbuf",
"sidt", "sidt",
"SMAP", "SMAP",
"SMBIOSBIOS", "SMBIOSBIOS",
@ -89,6 +121,7 @@
"SVME", "SVME",
"swapgs", "swapgs",
"TEXIT", "TEXIT",
"tlbi",
"tracepagetable", "tracepagetable",
"ttbr", "ttbr",
"ubsan", "ubsan",
@ -96,6 +129,7 @@
"UMIP", "UMIP",
"Unswap", "Unswap",
"UPID", "UPID",
"vfctprintf",
"vfsdbg", "vfsdbg",
"Vidx", "Vidx",
"VMXE", "VMXE",

View File

@ -9,6 +9,10 @@
"files.associations": { "files.associations": {
"fex.hpp": "c", "fex.hpp": "c",
"types.h": "c" "types.h": "c"
} },
"cSpell.words": [
"FENNIX",
"preinit"
]
} }
} }

View File

@ -4,7 +4,7 @@ export PATH := $(CROSS_DIR):$(PATH)
QEMU_VERSION = qemu-7.1.0 QEMU_VERSION = qemu-7.1.0
all: do_rep do_ep do_fex do_limine clone_all do_binutils64 do_binutils32 do_binutilsarm64 do_gcc64 do_gcc32 do_gccarm64 do_qemu all: do_rep do_ep do_fex do_limine clone_all do_binutils64 do_binutils32 do_binutilsarm64 do_gcc64 do_gcc32 do_gccarm64 do_qemu do_prep_toolchain do_toolchain_binutils64 do_toolchain_gcc64
clean: clean:
rm -f rep ep fex rm -f rep ep fex
@ -74,3 +74,28 @@ do_gccarm64:
cd build-gccarm64 && \ cd build-gccarm64 && \
../gcc/configure --target=aarch64-elf --prefix="$(CROSS_DIR)" --enable-languages=c,c++ --without-headers && \ ../gcc/configure --target=aarch64-elf --prefix="$(CROSS_DIR)" --enable-languages=c,c++ --without-headers && \
make all-gcc -j$(shell nproc) && make install-gcc -j$(shell nproc) make all-gcc -j$(shell nproc) && make install-gcc -j$(shell nproc)
do_binutils64:
cd build-binutilsamd64 && \
../binutils-gdb/configure --target=amd64-elf --prefix="$(CROSS_DIR)" --with-sysroot --enable-shared --disable-werror && \
make all -j$(shell nproc) && make install
do_prep_toolchain:
mkdir -p build-toolchain-binutils
mkdir -p build-toolchain-gcc
mkdir -p toolchain-binutils-gdb
mkdir -p toolchain-gcc
cp -r binutils-gdb/* toolchain-binutils-gdb
cp -r gcc/* toolchain-gcc
cd toolchain-binutils-gdb && git apply ../toolchain-binutils-gdb.patch && cd ..
cd toolchain-gcc && git apply ../toolchain-gcc.patch && cd ..
do_toolchain_binutils64:
cd build-toolchain-binutils && \
../toolchain-binutils-gdb/configure --target=x86_64-fennix --prefix="$(CROSS_DIR)/toolchain" --with-sysroot --enable-shared --disable-werror && \
make all -j$(shell nproc) && make install
do_toolchain_gcc64:
cd build-toolchain-gcc && \
../toolchain-gcc/configure --target=x86_64-fennix --prefix="$(CROSS_DIR)/toolchain" --enable-languages=c,c++ --enable-shared --without-headers && \
make all-gcc -j$(shell nproc) && make install-gcc -j$(shell nproc)

View File

@ -0,0 +1,233 @@
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 0bc27fdce97..10ce9c9aea2 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1481,6 +1481,19 @@ case "${targ}" in
;;
#endif
+ i[3-7]86-*-fennix*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=
+ targ64_selvecs=x86_64_elf64_vec
+ ;;
+#ifdef BFD64
+ x86_64-*-fennix*)
+ targ_defvec=x86_64_elf64_vec
+ targ_selvecs=i386_elf32_vec
+ want64=true
+ ;;
+#endif
+
# END OF targmatch.h
bpf-*-*)
echo "*** Configuration $targ is not fully supported." >&2
diff --git a/config.sub b/config.sub
index dba16e84c77..4eedac1fbdc 100755
--- a/config.sub
+++ b/config.sub
@@ -1754,7 +1754,7 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
- | fiwix* )
+ | fiwix* | fennix* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 82f2d44f418..61c73a61034 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -264,6 +264,7 @@ case ${generic_target} in
i386-*-*nt*) fmt=coff em=pe ;;
i386-*-rdos*) fmt=elf ;;
i386-*-darwin*) fmt=macho ;;
+ i386-*-fennix*) fmt=elf em=gnu ;;
ia16-*-elf*) fmt=elf ;;
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 65fef4e1690..8d541d2dc54 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -277,6 +277,7 @@ ALL_EMULATION_SOURCES = \
eelf_i386.c \
eelf_i386_be.c \
eelf_i386_fbsd.c \
+ eelf_i386_fennix.c \
eelf_i386_haiku.c \
eelf_i386_ldso.c \
eelf_i386_sol2.c \
@@ -456,6 +457,7 @@ ALL_64_EMULATION_SOURCES = \
eelf_x86_64.c \
eelf_x86_64_cloudabi.c \
eelf_x86_64_fbsd.c \
+ eelf_x86_64_fennix.c \
eelf_x86_64_haiku.c \
eelf_x86_64_sol2.c \
ehppa64linux.c \
@@ -771,6 +773,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fennix.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Pc@am__quote@
@@ -947,6 +950,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fennix.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_haiku.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppa64linux.Pc@am__quote@
diff --git a/ld/Makefile.in b/ld/Makefile.in
index ff4c916c27b..11593eda435 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -778,6 +778,7 @@ ALL_EMULATION_SOURCES = \
eelf_i386.c \
eelf_i386_be.c \
eelf_i386_fbsd.c \
+ eelf_i386_fennix.c \
eelf_i386_haiku.c \
eelf_i386_ldso.c \
eelf_i386_sol2.c \
@@ -956,6 +957,7 @@ ALL_64_EMULATION_SOURCES = \
eelf_x86_64.c \
eelf_x86_64_cloudabi.c \
eelf_x86_64_fbsd.c \
+ eelf_x86_64_fennix.c \
eelf_x86_64_haiku.c \
eelf_x86_64_sol2.c \
ehppa64linux.c \
@@ -1453,6 +1455,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fennix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Po@am__quote@
@@ -1463,6 +1466,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fennix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_haiku.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300elf.Po@am__quote@
@@ -2445,6 +2449,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fennix.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Pc@am__quote@
@@ -2621,6 +2626,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Pc@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fennix.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_haiku.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Pc@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ehppa64linux.Pc@am__quote@
diff --git a/ld/configure b/ld/configure
index a4d30abfb1c..abdc71568cd 100755
--- a/ld/configure
+++ b/ld/configure
@@ -15165,7 +15165,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15211,7 +15211,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15235,7 +15235,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15280,7 +15280,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -15304,7 +15304,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -16952,6 +16952,8 @@ main ()
if (*(data + i) != *(data3 + i))
return 14;
close (fd);
+ free (data);
+ free (data3);
return 0;
}
_ACEOF
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 741b246f67e..fd37e8cb34c 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -408,6 +408,11 @@ i[3-7]86-*-elf* | i[3-7]86-*-rtems* | i[3-7]86-*-genode*)
i[3-7]86-*-dragonfly*) targ_emul=elf_i386
targ_extra_emuls="elf_iamcu i386bsd"
;;
+i[3-7]86-*-fennix*)
+ targ_emul=elf_i386_fennix
+ targ_extra_emuls=elf_i386
+ targ64_extra_emuls="elf_x86_64_fennix elf_x86_64"
+ ;;
i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
targ_emul=elf_i386_fbsd
targ_extra_emuls="elf_i386 elf_iamcu i386bsd"
@@ -991,6 +996,10 @@ vax-*-linux-*) targ_emul=elf32vax
;;
visium-*-elf) targ_emul=elf32visium
;;
+x86_64-*-fennix*)
+ targ_emul=elf_x86_64_fennix
+ targ_extra_emuls="elf_i386_fennix elf_x86_64 elf_i386"
+ ;;
x86_64-*-rdos*) targ_emul=elf64rdos
;;
x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi
@@ -1100,6 +1109,10 @@ case "${target}" in
NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
;;
+*-*-fennix*)
+ NATIVE_LIB_DIRS='/system/lib'
+ ;;
+
hppa*64*-*-hpux11*)
NATIVE_LIB_DIRS=/usr/lib/pa20_64
;;

6122
tools/toolchain-gcc.patch Normal file

File diff suppressed because it is too large Load Diff