summaryrefslogtreecommitdiffstats
path: root/MinGW-w64/build/MinGW-w64.SlackBuild
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2021-12-22 22:30:58 +0000
committer Eric Hameleers <alien@slackware.com>2021-12-22 22:30:58 +0000
commit872af77b0ce5ba861c363ef4b5516a8fb6c443dc (patch)
tree3b02003a9511eb2da4c61e61568aaa33a2a5abbd /MinGW-w64/build/MinGW-w64.SlackBuild
parent8dc45df59c54a7497caf7174654279be24df945c (diff)
downloadasb-872af77b0ce5ba861c363ef4b5516a8fb6c443dc.tar.gz
asb-872af77b0ce5ba861c363ef4b5516a8fb6c443dc.tar.xz
MinGW-w64: make it compile on 32bit -current
Diffstat (limited to 'MinGW-w64/build/MinGW-w64.SlackBuild')
-rwxr-xr-xMinGW-w64/build/MinGW-w64.SlackBuild35
1 files changed, 13 insertions, 22 deletions
diff --git a/MinGW-w64/build/MinGW-w64.SlackBuild b/MinGW-w64/build/MinGW-w64.SlackBuild
index 10f917c9..d1dd7406 100755
--- a/MinGW-w64/build/MinGW-w64.SlackBuild
+++ b/MinGW-w64/build/MinGW-w64.SlackBuild
@@ -94,7 +94,7 @@ fi
# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX:
case "$ARCH" in
i?86) SLKCFLAGS="-O2 -march=${ARCH} -mtune=i686"
- SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ SLKLDFLAGS="-L/usr/lib"; LIBDIRSUFFIX=""
MINGW_TARGETS="${ARCH}-w64-mingw32"
;;
x86_64) SLKCFLAGS="-O2 -fPIC"
@@ -108,16 +108,8 @@ case "$ARCH" in
esac
TARGET=${ARCH}-slackware-linux
-# Attempting to compile our own support tools, binutils and gcc fails
-# on 32bit Slackware. When the build gets to gcc I run into the error:
-# "/tmp/mingw_gcc_bootstrap/bin/ld: cannot find -lc",
-# and I have not found a fix for this.
-# So, on 32bit Slackware we have use the system toolchain until I fix this:
-if [ "$ARCH" == "x86_64" ]; then
- BUILD_GCC=${BUILD_GCC:-"YES"}
-else
- BUILD_GCC=${BUILD_GCC:-"NO"}
-fi
+# You can chose to use the system gcc instead of compiling it to save some time:
+BUILD_GCC=${BUILD_GCC:-"YES"}
# Tool capabilities:
GCC_EXCEPTIONS="dwarf2"
@@ -132,10 +124,12 @@ if [ "$ARCH" == "x86_64" ]; then
--with-abi=m64 \
--with-multilib-list=m32,m64 \
--enable-multilib \
+ --enable-multiarch \
--enable-default-pie"
else
BINUTILS_TARGETS="i386-efi-pe"
- GCC_MULTI_ARCH="--disable-multilib"
+ GCC_MULTI_ARCH="\
+ --with-arch=i586"
fi
# Arguments for the MinGW gcc compilation:
@@ -407,14 +401,11 @@ make install prefix=${GCC_BOOTSTRAP_PATH} tooldir=${GCC_BOOTSTRAP_PATH} || exit
# Remove unwanted files:
rm -f ${GCC_BOOTSTRAP_PATH}/share/man/man1/{dlltool,nlmconv,windres,windmc}*
-#if [ "$ARCH" != "x86_64" ]; then
-# # Create symlinks to c and math libraries to prevent 'ld: can not find -lc':
-# ln -sf /usr/lib/libc.so ${GCC_BOOTSTRAP_PATH}/lib/
-# ln -sf /usr/lib/libc.a ${GCC_BOOTSTRAP_PATH}/lib/
-# ln -sf /usr/lib/libm.so ${GCC_BOOTSTRAP_PATH}/lib/
-# ln -sf /usr/lib/libpthread.so ${GCC_BOOTSTRAP_PATH}/lib/
- #ln -sf /usr/lib/libpthread.a ${GCC_BOOTSTRAP_PATH}/lib/
-#fi
+if [ "$ARCH" != "x86_64" ]; then
+ # Use the output of '${GCC_BOOTSTRAP_PATH}/bin/ld --verbose | grep SEARCH_DIR'
+ # to see that this ld looks in a not-existing location, which we'll exploit.
+ ln -s /usr ${GCC_BOOTSTRAP_PATH}/i686-pc-linux-gnu
+fi
# gcc:
echo "-- gcc --"
@@ -428,7 +419,6 @@ $TMP/tmp-$PRGNAM/gcc-${GCC}/configure \
--with-pkgversion='alienBOB' \
--with-build-sysroot='/' \
--enable-languages=${GCC_LANGUAGES} \
- --enable-multiarch \
--disable-bootstrap \
--with-gcc-major-version-only \
--enable-linker-build-id \
@@ -485,12 +475,13 @@ for lib in \
libgomp \
libitm \
libquadmath \
- libsanitizer/{a,l,ub,t}san \
+ libsanitizer/{a,l,ub}san \
libstdc++-v3/src \
libvtv; do
make -C ${TARGET}/$lib install-toolexeclibLTLIBRARIES
done
if [ "$ARCH" == "x86_64" ]; then
+ make -C ${TARGET}/libsanitizer/tsan install-toolexeclibLTLIBRARIES
for lib in \
libatomic \
libgomp \