Make windres output in res format instead of in coff
This makes the output architecture independent, allowing the x86_64 GNU binutils binary to be used for other architectures as well, including arm/arm64 which aren't supported by binutils.
This commit is contained in:
1 parent
41985ce12e
commit
583baaa612
4 files changed
+14
-3
No files matched your search
+1
-1
@@ -29,7 +29,7 @@ RUN ./install-wrappers.sh $TOOLCHAIN_PREFIX
|
||||
# llvm-rc isn't fully usable as a replacement for windres yet.
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -qqy binutils-mingw-w64-x86-64 && \
|
||||
cp /usr/bin/x86_64-w64-mingw32-windres $TOOLCHAIN_PREFIX/bin && \
|
||||
cp /usr/bin/x86_64-w64-mingw32-windres $TOOLCHAIN_PREFIX/bin/x86_64-w64-mingw32-windresreal && \
|
||||
apt-get remove -qqy binutils-mingw-w64-x86-64 && \
|
||||
cd $TOOLCHAIN_PREFIX/bin
|
||||
|
||||
|
||||
@@ -48,6 +48,14 @@ a different version) - and likewise, if configure flags in the build-*.sh
|
||||
scripts have changed, you might need to wipe the build directory under
|
||||
each project for the new configure options to be taken into use.
|
||||
|
||||
If building without the dockerfile, manually install a copy of normal
|
||||
GNU binutils windres with the name `x86_64-w64-mingw32-windresreal`.
|
||||
Wrappers named `<triplet>-windres` are installed that call this binary
|
||||
with the necessary options to make it output in the arch independent
|
||||
res format, allowing using it for all architectures, even those that
|
||||
GNU binutils don't support. (LLVM does provide a similar tool, llvm-rc,
|
||||
but it's not yet ready to actually replace windres in all cases.)
|
||||
|
||||
|
||||
|
||||
Status
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ PREFIX="$1"
|
||||
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
|
||||
|
||||
mkdir -p $PREFIX/bin
|
||||
cp wrappers/clang-target-wrapper.sh wrappers/objdump-wrapper.sh wrappers/ld-wrapper.sh $PREFIX/bin
|
||||
cp wrappers/clang-target-wrapper.sh wrappers/objdump-wrapper.sh wrappers/ld-wrapper.sh wrappers/windres-wrapper.sh $PREFIX/bin
|
||||
cd $PREFIX/bin
|
||||
for arch in $ARCHS; do
|
||||
for exec in clang clang++ gcc g++; do
|
||||
@@ -23,7 +23,7 @@ for arch in $ARCHS; do
|
||||
for exec in strip; do
|
||||
ln -sf /bin/true $arch-w64-mingw32-$exec
|
||||
done
|
||||
for exec in ld objdump; do
|
||||
for exec in ld objdump windres; do
|
||||
ln -sf $exec-wrapper.sh $arch-w64-mingw32-$exec
|
||||
done
|
||||
done
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
x86_64-w64-mingw32-windresreal "$@" --output-format res
|
||||
Reference in new issue
Block a user