[Bug target/101823] GCC generates the wrong string in the assembly code.
bootmgr at 163 dot com
gcc-bugzilla@gcc.gnu.org
Thu Jan 19 09:31:13 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101823
--- Comment #7 from bootmgr at 163 dot com <bootmgr at 163 dot com> ---
(In reply to bootmgr@163.com from comment #5)
> (In reply to niXman from comment #4)
> > please provide the step-by-step instruction you used.
> 1. Extract binutils gcc mingw-w64 files to any where
> Extract gmp mpfr mpc isl to gcc source directory
> note: please make sure no subdirectories are included under
> gcc-x.x.x/{gmp,mpfr,mpc,isl}.
> these file can be found here
> http://ftp.gnu.org/gnu/binutils/
> http://ftp.gnu.org/gnu/gcc/
> https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
> https://gmplib.org/#DOWNLOAD
> https://www.mpfr.org/mpfr-current/#download
> https://www.multiprecision.org/mpc/download.html
> https://libisl.sourceforge.io/
>
> 2. Clone the windows default manifest
> (git://cygwin.com/git/cygwin-apps/windows-default-manifest.git)
>
> 3. These instructions are used to build cross toolchain and install to
> /mingw (can be changed to other directory).
> note: use "make -j$(nproc)" instead "make" to use more CPU cores.
>
> 1) Set PREFIX and PATH variables
>
> export PREFIX=/mingw
> export PATH=$PATH:$PREFIX/bin
> note: if you are not root, please run "sudo mkdir /mingw && sudo chmod 777
> /mingw"
>
> 2) chdir to gcc source directory and run "sed -i
> 's/${prefix}\/mingw\//${prefix}\//g' configure"
> see also
> https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-gcc/
> PKGBUILD#L155
>
> 3) Build binutils
> ../binutils-2.40/configure --disable-nls --disable-rpath --enable-64-bit-bfd
> --enable-deterministic-archives --enable-install-libiberty
> --target=x86_64-w64-mingw32 --prefix=$PREFIX
> make && make install-strip
>
> 4) Install mingw-w64 headers
> ../mingw-w64-v10.0.0/mingw-w64-headers/configure --host=x86_64-w64-mingw32
> --prefix=$PREFIX/x86_64-w64-mingw32
> make && make install -j16
>
> 5) Build GCC core compiler
> ../gcc-12.2.0/configure --disable-multilib --disable-nls --disable-rpath
> --disable-symvers --enable-languages=c,c++,lto --enable-mingw-wildcard
> --enable-threads=posix --enable-libgomp --disable-libstdcxx-verbose
> --enable-fully-dynamic-string --target=x86_64-w64-mingw32 --prefix=$PREFIX
> make all-gcc && make install-strip-gcc
>
> 6) Build mingw-w64
> ../mingw-w64-v10.0.0/configure --enable-experimental --disable-lib32
> --host=x86_64-w64-mingw32 --prefix=$PREFIX/x86_64-w64-mingw32
> make && make install-strip
>
> 7) Build winpthreads (pthread support for windows)
> ../mingw-w64-v10.0.0/mingw-w64-libraries/winpthreads/configure
> --host=x86_64-w64-mingw32 --prefix=$PREFIX/x86_64-w64-mingw32
>
> 8) Build windows default manifest
> x86_64-w64-mingw32-windres -F pe-x86-64
> ./windows-default-manifest/default-manifest.rc -o
> $PREFIX/x86_64-w64-mingw32/lib/default-manifest.o
> note: this has the same effect as the following command
> ../windows-default-manifest/configure --host=x86_64-w64-mingw32
> --prefix=$PREFIX/x86_64-w64-mingw32
> make && make install
>
> 9) Build GCC compiler
> chdir to build gcc directory and run "make && make install-strip"
>
> 4.Now we have a mingw-w64 cross toolchain (without zstd libiconv support)
> So we can build canadian toolchain easily
>
> 1) Build binutils
> ../binutils-2.40/configure --disable-nls --disable-rpath --enable-64-bit-bfd
> --enable-deterministic-archives --enable-install-libiberty
> --host=x86_64-w64-mingw32 --prefix=$PREFIX
>
> 2) Build GCC
> ../gcc-12.2.0/configure --disable-multilib --disable-nls --disable-rpath
> --disable-symvers --disable-win32-registry --enable-languages=c,c++,lto
> --enable-mingw-wildcard --enable-threads=posix --enable-libgomp
> --disable-libstdcxx-verbose --enable-fully-dynamic-string
> --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=$PREFIX
>
> 3) Build mingw-w64, winpthreads and windows default manifest
> ../mingw-w64-v10.0.0/configure --enable-experimental --disable-lib32
> --host=x86_64-w64-mingw32 --prefix=$PREFIX
> ../mingw-w64-v10.0.0/mingw-w64-libraries/winpthreads/configure
> --host=x86_64-w64-mingw32 --prefix=$PREFIX
> x86_64-w64-mingw32-windres -F pe-x86-64
> ./windows-default-manifest/default-manifest.rc -o
> install_dir/lib/default-manifest.o
After a loooog compile, I get the same error on my Ubuntu WSL. but I think it
might be a problem with the WSL VM.
More information about the Gcc-bugs
mailing list