Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM 3.4-related build failure on Fedora/EPEL nightlies #9341

Closed
nalimilan opened this issue Dec 13, 2014 · 8 comments
Closed

LLVM 3.4-related build failure on Fedora/EPEL nightlies #9341

nalimilan opened this issue Dec 13, 2014 · 8 comments

Comments

@nalimilan
Copy link
Member

All Fedora/EPEL nightlies have been failing since 2014-12-06 when using LLVM 3.4, but not when using 3.3 or 3.5. Below is the output for Fedora 21.

make[3]: Leaving directory '/builddir/build/BUILD/julia/src/support'
 gcc -march=x86-64 -m64  "-DJL_SYSTEM_IMAGE_PATH=\"../lib64/julia/sys.ji\"" -DJULIA_TARGET_ARCH=x86-64 -DSYSTEM_LLVM -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -std=gnu99 -pipe -fPIC -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -DCOPY_STACKS -O3 -ggdb3 -falign-functions -momit-leaf-frame-pointer -D_GNU_SOURCE -Iflisp -Isupport -I/usr/include -I/builddir/build/BUILD/julia/deps/libuv/include -I/builddir/build/BUILD/julia/build/usr/include -DLIBRARY_EXPORTS -I. -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common -DNDEBUG -c module.c -o module.o
 g++ -march=x86-64 -m64 -I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -fomit-frame-pointer -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -Wcast-qual  "-DJL_SYSTEM_IMAGE_PATH=\"../lib64/julia/sys.ji\"" -DJULIA_TARGET_ARCH=x86-64 -DSYSTEM_LLVM -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -pipe -fPIC -fno-rtti -O3 -ggdb3 -falign-functions -momit-leaf-frame-pointer -D_GNU_SOURCE -Iflisp -Isupport -I/usr/include -I/builddir/build/BUILD/julia/deps/libuv/include -I/builddir/build/BUILD/julia/build/usr/include -DLIBRARY_EXPORTS -I. -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common -c codegen.cpp -o codegen.o
 g++ -march=x86-64 -m64 -I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -fomit-frame-pointer -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -Wcast-qual  "-DJL_SYSTEM_IMAGE_PATH=\"../lib64/julia/sys.ji\"" -DJULIA_TARGET_ARCH=x86-64 -DSYSTEM_LLVM -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -pipe -fPIC -fno-rtti -O3 -ggdb3 -falign-functions -momit-leaf-frame-pointer -D_GNU_SOURCE -Iflisp -Isupport -I/usr/include -I/builddir/build/BUILD/julia/deps/libuv/include -I/builddir/build/BUILD/julia/build/usr/include -DLIBRARY_EXPORTS -I. -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common -c disasm.cpp -o disasm.o
 g++ -march=x86-64 -m64 -I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -fomit-frame-pointer -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -Wcast-qual  "-DJL_SYSTEM_IMAGE_PATH=\"../lib64/julia/sys.ji\"" -DJULIA_TARGET_ARCH=x86-64 -DSYSTEM_LLVM -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic -pipe -fPIC -fno-rtti -O3 -ggdb3 -falign-functions -momit-leaf-frame-pointer -D_GNU_SOURCE -Iflisp -Isupport -I/usr/include -I/builddir/build/BUILD/julia/deps/libuv/include -I/builddir/build/BUILD/julia/build/usr/include -DLIBRARY_EXPORTS -I. -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common -c debuginfo.cpp -o debuginfo.o
disasm.cpp: In function 'void jl_dump_function_asm(const char*, size_t, const llvm::object::ObjectFile*, llvm::formatted_raw_ostream&)':
disasm.cpp:388:63: error: no matching function for call to 'llvm::MCDisassembler::setupForSymbolicDisassembly(int (&)(void*, uint64_t, uint64_t, uint64_t, int, void*), const char* (&)(void*, uint64_t, uint64_t*, uint64_t, const char**), {anonymous}::SymbolTable*, llvm::MCContext*)'
                     OpInfoLookup, SymbolLookup, &DisInfo, &Ctx);
                                                               ^
disasm.cpp:388:63: note: candidate is:
In file included from disasm.cpp:32:0:
/usr/include/llvm/MC/MCDisassembler.h:121:8: note: void llvm::MCDisassembler::setupForSymbolicDisassembly(LLVMOpInfoCallback, LLVMSymbolLookupCallback, void*, llvm::MCContext*, llvm::OwningPtr<llvm::MCRelocationInfo>&)
   void setupForSymbolicDisassembly(LLVMOpInfoCallback GetOpInfo,
        ^
/usr/include/llvm/MC/MCDisassembler.h:121:8: note:   candidate expects 5 arguments, 4 provided
disasm.cpp:485:78: error: no matching function for call to 'llvm::MCInstrAnalysis::evaluateBranch(llvm::MCInst&, uint64_t&, uint64_t&)'
                         if ((addr = MCIA->evaluateBranch(Inst, Index, insSize)) != -1)
                                                                              ^
disasm.cpp:485:78: note: candidate is:
In file included from disasm.cpp:45:0:
/usr/include/llvm/MC/MCInstrAnalysis.h:62:3: note: virtual bool llvm::MCInstrAnalysis::evaluateBranch(const llvm::MCInst&, uint64_t, uint64_t, uint64_t&) const
   evaluateBranch(const MCInst &Inst, uint64_t Addr, uint64_t Size,
   ^
/usr/include/llvm/MC/MCInstrAnalysis.h:62:3: note:   candidate expects 4 arguments, 3 provided
Makefile:62: recipe for target 'disasm.o' failed
make[2]: *** [disasm.o] Error 1
make[2]: *** Waiting for unfinished jobs....
debuginfo.cpp: In member function 'virtual void JuliaJITEventListener::NotifyObjectEmitted(const llvm::ObjectImage&)':
debuginfo.cpp:194:18: warning: unused variable 'SectAddr' [-Wunused-variable]
         uint64_t SectAddr, Addr;
                  ^
make[2]: Leaving directory '/builddir/build/BUILD/julia/src'
Makefile:101: recipe for target 'julia-release' failed
make[1]: Leaving directory '/builddir/build/BUILD/julia'
Makefile:49: recipe for target 'release' failed
make[1]: *** [julia-release] Error 2
make: *** [release] Error 2

http://copr-be.cloud.fedoraproject.org/results/nalimilan/julia-nightlies/fedora-21-x86_64/julia-0.4.0-0.20141206.el7.centos/build.log

@nalimilan
Copy link
Member Author

Bump!

@tkelman
Copy link
Contributor

tkelman commented Dec 19, 2014

I think we're skipping 3.4, which is probably why this hasn't been responded to with any urgency.

@ViralBShah
Copy link
Member

See #9336.

@nalimilan
Copy link
Member Author

OK. But was the breakage voluntary? If not, since AFAIK LLVM versions are handled using #ifdefs, I thought it would be easy to track down and fix. If some bisection is needed I can do it.

@tkelman
Copy link
Contributor

tkelman commented Dec 19, 2014

But was the breakage voluntary?

No, I'm sure it wasn't. Just a lack of people testing or worrying too much about 3.4 most likely.

If not, since AFAIK LLVM versions are handled using #ifdefs, I thought it would be easy to track down and fix.

Based on the timing it's almost definitely due to 55e2ee0

@andreasnoack
Copy link
Member

See some of the last comments in #4853 and this #4597 (comment)

@tkelman
Copy link
Contributor

tkelman commented Dec 19, 2014

Right, but that would be more of a reason to expect test failures with LLVM 3.4 that might be impossible to fix. I don't see why it would be impossible to compile with LLVM 3.4 if you really want to, especially if it was working before 2 weeks ago, but that configuration would have to be considered unsupported.

@nalimilan
Copy link
Member Author

I'm fine with leaving LLVM 3.4 unsupported, I'll add a 3.3 or 3.5 package to the distributions that need it. But better state this explicitly somewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants