diff --git a/Toolchain/BuildIt.sh b/Toolchain/BuildIt.sh index 1c3dbf9ed5..2c252a379a 100755 --- a/Toolchain/BuildIt.sh +++ b/Toolchain/BuildIt.sh @@ -100,6 +100,7 @@ pushd "$DIR/Build/" "$DIR"/Tarballs/binutils-2.33.1/configure --prefix="$PREFIX" \ --target="$TARGET" \ --with-sysroot="$SYSROOT" \ + --enable-shared \ --disable-nls || exit 1 make -j "$MAKEJOBS" || exit 1 make install || exit 1 @@ -111,6 +112,7 @@ pushd "$DIR/Build/" --with-sysroot="$SYSROOT" \ --disable-nls \ --with-newlib \ + --enable-shared \ --enable-languages=c,c++ || exit 1 echo "XXX build gcc and libgcc" diff --git a/Toolchain/Patches/gcc.patch b/Toolchain/Patches/gcc.patch index d460f533ab..cfe7a4a360 100644 --- a/Toolchain/Patches/gcc.patch +++ b/Toolchain/Patches/gcc.patch @@ -137,10 +137,10 @@ index 000000000..24b29c3da +#define PTRDIFF_TYPE "long int" diff --git a/gcc/config/serenity.h b/gcc/config/serenity.h new file mode 100644 -index 000000000..60ebec583 +index 000000000..925c88dd6 --- /dev/null +++ b/gcc/config/serenity.h -@@ -0,0 +1,28 @@ +@@ -0,0 +1,31 @@ +/* Useful if you wish to make target-specific GCC changes. */ +#undef TARGET_SERENITY +#define TARGET_SERENITY 1 @@ -158,6 +158,9 @@ index 000000000..60ebec583 +/* Files that are linked after user code. */ +#undef ENDFILE_SPEC +#define ENDFILE_SPEC "crtend.o%s crtn.o%s" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{shared:-shared} %{static:-static} %{!shared: %{!static: %{rdynamic:-export-dynamic}}}" + +/* Additional predefined macros. */ +#undef TARGET_OS_CPP_BUILTINS