Clint Banis via llvm-dev
2019-Jul-30 06:18 UTC
[llvm-dev] LLVM Build Error: Target object too big
While trying to assemble a particular input file, my build system failed because
the target object was too big. I calculated that the input source file after
preprocessing would be about 3.91Mb.
system: CYGWIN_NT-10.0 x86_64 Cygwin
file: llvm-master/lib/Passes/PassBuilder.cpp
build output:
Scanning dependencies of target LLVMPasses
[ 84%] Building CXX object
lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/../../../../x86_64-pc-cygwin/bin/as:
CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o: too many sections (55165)
/tmp/cc9ADbCA.s: Assembler messages:
/tmp/cc9ADbCA.s: Fatal error: can't write
CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o: File too big
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/../../../../x86_64-pc-cygwin/bin/as:
CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o: too many sections (55165)
/tmp/cc9ADbCA.s: Fatal error: can't close
CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o: File too big
make[2]: *** [lib/Passes/CMakeFiles/LLVMPasses.dir/build.make:63:
lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:17896:
lib/Passes/CMakeFiles/LLVMPasses.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
compiler version:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with:
/cygdrive/i/szsz/tmpp/gcc/gcc-5.4.0-1.x86_64/src/gcc-5.4.0/configure
--srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-5.4.0-1.x86_64/src/gcc-5.4.0
--prefix=/usr --exec-prefix=/usr --localstatedir=/var
--sysconfdir=/etc --docdir=/usr/share/doc/gcc
--htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin
--host=x86_64-pc-cygwin --target=x86_64-pc-cygwin
--without-libiconv-prefix --without-libintl-prefix
--libexecdir=/usr/lib --enable-shared --enable-shared-libgcc
--enable-static --enable-version-specific-runtime-libs
--enable-bootstrap --enable-__cxa_atexit --with-dwarf2
--with-tune=generic
--enable-languages=ada,c,c++,fortran,lto,objc,obj-c++
--enable-graphite --enable-threads=posix --enable-libatomic
--enable-libcilkrts --enable-libgomp --enable-libitm
--enable-libquadmath --enable-libquadmath-support --enable-libssp
--enable-libada --enable-libgcj-sublibs --disable-java-awt
--disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld
--with-gnu-as --with-cloog-include=/usr/include/cloog-isl
--without-libiconv-prefix --without-libintl-prefix --with-system-zlib
--enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible
Thread model: posix
gcc version 5.4.0 (GCC)
$ as -v
GNU assembler version 2.25.2 (x86_64-pc-cygwin) using BFD version
(GNU Binutils) 2.25.2
$ make -v
GNU Make 4.2.1
Built for x86_64-unknown-cygwin
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ cmake --version
cmake version 3.6.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
What I've tried so far:
CFLAGS="-Wa,-mbig-obj" make
But still same error.
I tried -Wa
Reid Kleckner via llvm-dev
2019-Jul-30 17:48 UTC
[llvm-dev] LLVM Build Error: Target object too big
On Tue, Jul 30, 2019 at 8:30 AM Clint Banis via llvm-dev < llvm-dev at lists.llvm.org> wrote:> What I've tried so far: > CFLAGS="-Wa,-mbig-obj" make > > But still same error. >I think this is the correct solution, but putting CFLAGS into the environment while running make or re-running cmake isn't enough to get flags through to the compiler. I'd recommend doing something like `make VERBOSE=1 lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o` to extract the single failing compile command, manually add -Wa,-mbig-obj, rerun, and see if the problem goes away. Lastly, assuming that fixes PassBuilder.cpp.o, you'll need to enable it globally. We already enable it for mingw here: http://llvm-cs.pcc.me.uk/cmake/modules/HandleLLVMOptions.cmake#351 We can definitely tweak those conditions to include Cygwin as the FIXME says, but you can see that obviously nobody has built LLVM this way for quite some time. Expect to run into more issues. Consider switching to mingw or mvsc if possible. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190730/4706e316/attachment.html>
Neil Nelson via llvm-dev
2019-Jul-30 23:11 UTC
[llvm-dev] LLVM Build Error: Target object too big
It has been a good number of years here since running Cygwin or Mingw (better) under Windows. Eventually used a free copy of VMWare (there are likely other options now) to create a Linux VM under Windows. You can then choose most any Linux distribution and click back and forth between Windows and Linux. Regards, Neil Nelson On 7/30/19 11:48 AM, Reid Kleckner via llvm-dev wrote:> On Tue, Jul 30, 2019 at 8:30 AM Clint Banis via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > What I've tried so far: > CFLAGS="-Wa,-mbig-obj" make > > But still same error. > > > I think this is the correct solution, but putting CFLAGS into the > environment while running make or re-running cmake isn't enough to get > flags through to the compiler. I'd recommend doing something like > `make > VERBOSE=1 lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o` to > extract the single failing compile command, manually add > -Wa,-mbig-obj, rerun, and see if the problem goes away. > > Lastly, assuming that fixes PassBuilder.cpp.o, you'll need to enable > it globally. We already enable it for mingw here: > http://llvm-cs.pcc.me.uk/cmake/modules/HandleLLVMOptions.cmake#351 > We can definitely tweak those conditions to include Cygwin as the > FIXME says, but you can see that obviously nobody has built LLVM this > way for quite some time. Expect to run into more issues. Consider > switching to mingw or mvsc if possible. > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190730/d7771d12/attachment.html>