Ticket #19146 (closed defect: fixed)
llvm-gcc42 fails to build
| Reported by: | varkentje@… | Owned by: | erickt@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.7.1 |
| Keywords: | Cc: | ryandesign@… | |
| Port: | llvm-gcc42 |
Description
Port llvm-gcc42 fails because it cannot find a type definition for AnchorDesc. This is on MacPorts-1.7.1 with all installed ports upgraded.
sudo port install llvm-gcc42
---> Fetching llvm-gcc42
---> Attempting to fetch llvm-gcc-4.2-2.4.source.tar.gz from http://trd.no.distfiles.macports.org/llvm-gcc42
---> Verifying checksum(s) for llvm-gcc42
---> Extracting llvm-gcc42
---> Configuring llvm-gcc42
---> Building llvm-gcc42
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-gcc42/work/build" && make all " returned error 2
Command output: ../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:72: error: ISO C++ forbids declaration of 'AnchorDesc' with no type
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:72: error: expected ';' before '*' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:73: error: ISO C++ forbids declaration of 'AnchorDesc' with no type
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:73: error: expected ';' before '*' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:74: error: 'DebugInfoDesc' was not declared in this scope
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:74: error: template argument 1 is invalid
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:74: error: template argument 2 is invalid
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:76: error: ISO C++ forbids declaration of 'SubprogramDesc' with no type
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:76: error: expected ';' before '*' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:87: error: expected ';' before '(' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:91: error: expected ';' before '(' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:121: error: ISO C++ forbids declaration of 'TypeDesc' with no type
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:121: error: expected ';' before '*' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:125: error: ISO C++ forbids declaration of 'CompileUnitDesc' with no type
../../llvm-gcc4.2-2.4.source/gcc/llvm-debug.h:125: error: expected ';' before '*' token
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp: In function 'void createOptimizationPasses()':
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:411: error: 'createAddReadAttrsPass' was not declared in this scope
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:472: error: expected type-specifier before 'PrintModulePass'
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:472: error: expected `)' before 'PrintModulePass'
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:472: error: no matching function for call to 'llvm::PassManager::add(int*)'
/opt/local/lib/llvm/src/include/llvm/PassManager.h:57: note: candidates are: virtual void llvm::PassManager::add(llvm::Pass*)
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp: In function 'void llvm_asm_file_end()':
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:660: error: expected type-specifier before 'PrintModulePass'
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:660: error: expected `)' before 'PrintModulePass'
../../llvm-gcc4.2-2.4.source/gcc/llvm-backend.cpp:660: error: no matching function for call to 'llvm::PassManager::add(int*)'
/opt/local/lib/llvm/src/include/llvm/PassManager.h:57: note: candidates are: virtual void llvm::PassManager::add(llvm::Pass*)
make[3]: *** [llvm-backend.o] Error 1
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2
Error: Status 1 encountered during processing.
Change History
comment:3 Changed 4 years ago by macsforever2000@…
- Owner changed from macports-tickets@… to erickt@…
- Cc varkentje@… removed
comment:4 Changed 4 years ago by erickt@…
I updated llvm-gcc42 to version 2.5 just the other day. Could you try resyncing with macports and rebuilding?
comment:5 Changed 4 years ago by varkentje@…
I just did the following:
$ sudo port clean --all llvm-gcc42 $ sudo port upgrade installed $ sudo port install llvm-gcc42
but the llvm-gcc42 build aborts with the exact same error message.
comment:6 Changed 4 years ago by ryandesign@…
- Cc ryandesign@… added
We are probably not seeing the first error in this output. MacPorts only shows the last 30 lines of output. Please try again with the debug switch to show all output:
sudo port clean llvm-gcc42 sudo port -d install llvm-gcc42 2>&1 | tee ~/Desktop/llvm.txt
Then you can find llvm.txt on your desktop and attach it to this ticket.
comment:7 Changed 4 years ago by varkentje@…
Ok, that reveals the following issue. In gcc/llvm-debug.h the class DISerialize is instantiated. In llvm releases <= 2.4 this class is defined in llvm-2.4/include/llvm/MachineModuleInfo.h. But the class has disappeared completely from llvm release >= 2.5 ...
See http://llvm.sourcearchive.com/documentation/2.4/MachineModuleInfo_8h-source.html#l00769
Conclusion: the llvm-gcc42 that my MacPorts downloaded is still at <= 2.4.
SOLVED: Today I tried resyncing again and this time llvm-gcc42 builds fine. I suspect that my previous two macports syncs happened during the window where the archive had llvm-2.5 and llvm-gcc42-2.4.


Cc Me!