diff options
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 |
commit | 872af77b0ce5ba861c363ef4b5516a8fb6c443dc (patch) | |
tree | 3b02003a9511eb2da4c61e61568aaa33a2a5abbd /MinGW-w64/build/MinGW-w64.SlackBuild | |
parent | 8dc45df59c54a7497caf7174654279be24df945c (diff) | |
download | asb-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-x | MinGW-w64/build/MinGW-w64.SlackBuild | 35 |
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 \ |