[MacPorts] #64606: ld64-97 and ld64-127 fail to build against llvm-3.5 on 10.6.8 Rosetta (while earlier llvm fail to build)
MacPorts
noreply at macports.org
Fri Feb 4 14:12:52 UTC 2022
#64606: ld64-97 and ld64-127 fail to build against llvm-3.5 on 10.6.8 Rosetta
(while earlier llvm fail to build)
-------------------------------------------+-------------------------------
Reporter: barracuda156 | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.7.1
Keywords: powerpc, snowleopard, rosetta | Port: ld64-97, ld64-127
-------------------------------------------+-------------------------------
So ld64-127 fails on this:
{{{
In file included from src/ld/passes/stubs/stubs.cpp:37:0:
src/ld/Options.h: In member function 'bool
Options::CStringEquals::operator()(const char*, const char*) const':
src/ld/Options.h:301:72: error: 'strcmp' was not declared in this scope
bool operator()(const char* left, const char* right) const { return
(strcmp(left, right) == 0); }
^~~~~~
src/ld/Options.h:301:72: note: suggested alternative: 'wcscmp'
bool operator()(const char* left, const char* right) const { return
(strcmp(left, right) == 0); }
^~~~~~
wcscmp
src/ld/passes/stubs/stubs.cpp: In member function 'bool
ld::passes::stubs::Pass::AtomByNameSorter::operator()(const ld::Atom*,
const ld::Atom*)':
src/ld/passes/stubs/stubs.cpp:65:14: error: 'strcmp' was not declared in
this scope
return (strcmp(left->name(), right->name()) < 0);
^~~~~~
src/ld/passes/stubs/stubs.cpp:65:14: note: suggested alternative: 'wcscmp'
return (strcmp(left->name(), right->name()) < 0);
^~~~~~
wcscmp
src/ld/passes/stubs/stubs.cpp: In member function 'void
ld::passes::stubs::Pass::process(ld::Internal&)':
src/ld/passes/stubs/stubs.cpp:338:22: error: 'strcmp' was not declared in
this scope
if ( strcmp(sect->segmentName(), "__TEXT") == 0) {
^~~~~~
src/ld/passes/stubs/stubs.cpp:338:22: note: suggested alternative:
'wcscmp'
if ( strcmp(sect->segmentName(), "__TEXT") == 0) {
^~~~~~
wcscmp
make: *** [src/ld/passes/stubs/stubs.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory
`/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-127/work/ld64-127.2'
Command failed: cd
"/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-127/work/ld64-127.2"
&& /usr/bin/make -j4 -w all CC="/opt/local/bin/gcc-mp-7"
CXX="/opt/local/bin/g++-mp-7" OTHER_CPPFLAGS="-I/opt/local/include
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-127/work/dyld-655.1.1/include"
OTHER_CFLAGS="-Os -arch ppc" OTHER_CXXFLAGS="-Os -arch ppc"
OTHER_LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch
ppc" LLVM_CONFIG=/opt/local/bin/llvm-config-mp-3.5
OTHER_LDFLAGS_LD64="-I/opt/local/libexec/llvm-3.5/include/llvm-c"
Exit code: 2
Error: Failed to build ld64-127: command execution failed
}}}
ld64-97 fails on this:
{{{
src/other/rebase.cpp: In function 'void rebase(const fileInfo&)':
src/other/rebase.cpp:873:7: error: 'realpath' was not declared in this
scope
if ( realpath(info.path, realFilePath) == NULL ) {
^~~~~~~~
src/other/rebase.cpp:873:7: note: suggested alternative: 'realFilePath'
if ( realpath(info.path, realFilePath) == NULL ) {
^~~~~~~~
realFilePath
src/other/rebase.cpp: In function 'int main(int, const char**)':
src/other/rebase.cpp:993:19: error: 'strtoull' was not declared in this
scope
lowAddress = strtoull(argv[++i], &endptr, 16);
^~~~~~~~
src/other/rebase.cpp:993:19: note: suggested alternative: 'strcoll'
lowAddress = strtoull(argv[++i], &endptr, 16);
^~~~~~~~
strcoll
src/other/rebase.cpp:996:20: error: 'strtoull' was not declared in this
scope
highAddress = strtoull(argv[++i], &endptr, 16);
^~~~~~~~
src/other/rebase.cpp:996:20: note: suggested alternative: 'strcoll'
highAddress = strtoull(argv[++i], &endptr, 16);
^~~~~~~~
strcoll
make: *** [src/other/rebase.o] Error 1
make: *** Waiting for unfinished jobs....
src/other/machochecker.cpp: In instantiation of 'void
MachOChecker<A>::checkLoadCommands() [with A = ppc64]':
src/other/machochecker.cpp:227:19: required from
'MachOChecker<A>::MachOChecker(const uint8_t*, uint32_t, const char*)
[with A = ppc64; uint8_t = unsigned char; uint32_t = unsigned int]'
src/other/machochecker.cpp:62:24: required from 'static MachOChecker<A>*
MachOChecker<A>::make(const uint8_t*, uint32_t, const char*) [with A =
ppc64; uint8_t = unsigned char; uint32_t = unsigned int]'
src/other/machochecker.cpp:921:28: required from here
src/other/machochecker.cpp:333:66: error: no matching function for call to
'make_pair<MachOChecker<ppc64>::pint_t,
MachOChecker<ppc64>::pint_t>(uint64_t&, uint64_t&)'
segmentAddressRanges.push_back(std::make_pair<pint_t,
pint_t>(startAddr, endAddr));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from
/opt/local/include/gcc7/c++/bits/stl_algobase.h:64:0,
from /opt/local/include/gcc7/c++/vector:60,
from src/other/machochecker.cpp:34:
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: candidate:
template<class _T1, class _T2> constexpr std::pair<typename
std::__decay_and_strip<_Tp>::__type, typename
std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
make_pair(_T1&& __x, _T2&& __y)
^~~~~~~~~
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: template
argument deduction/substitution failed:
src/other/machochecker.cpp:333:66: note: cannot convert 'startAddr'
(type 'uint64_t {aka long long unsigned int}') to type 'long long unsigned
int&&'
segmentAddressRanges.push_back(std::make_pair<pint_t,
pint_t>(startAddr, endAddr));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/other/machochecker.cpp:350:69: error: no matching function for call to
'make_pair<MachOChecker<ppc64>::pint_t,
MachOChecker<ppc64>::pint_t>(uint64_t&, uint64_t&)'
segmentFileOffsetRanges.push_back(std::make_pair<pint_t,
pint_t>(startOffset, endOffset));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/local/include/gcc7/c++/bits/stl_algobase.h:64:0,
from /opt/local/include/gcc7/c++/vector:60,
from src/other/machochecker.cpp:34:
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: candidate:
template<class _T1, class _T2> constexpr std::pair<typename
std::__decay_and_strip<_Tp>::__type, typename
std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
make_pair(_T1&& __x, _T2&& __y)
^~~~~~~~~
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: template
argument deduction/substitution failed:
src/other/machochecker.cpp:350:69: note: cannot convert 'startOffset'
(type 'uint64_t {aka long long unsigned int}') to type 'long long unsigned
int&&'
segmentFileOffsetRanges.push_back(std::make_pair<pint_t,
pint_t>(startOffset, endOffset));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
src/other/machochecker.cpp: In instantiation of 'void
MachOChecker<A>::checkLoadCommands() [with A = x86_64]':
src/other/machochecker.cpp:227:19: required from
'MachOChecker<A>::MachOChecker(const uint8_t*, uint32_t, const char*)
[with A = x86_64; uint8_t = unsigned char; uint32_t = unsigned int]'
src/other/machochecker.cpp:62:24: required from 'static MachOChecker<A>*
MachOChecker<A>::make(const uint8_t*, uint32_t, const char*) [with A =
x86_64; uint8_t = unsigned char; uint32_t = unsigned int]'
src/other/machochecker.cpp:927:29: required from here
src/other/machochecker.cpp:333:66: error: no matching function for call to
'make_pair<MachOChecker<x86_64>::pint_t,
MachOChecker<x86_64>::pint_t>(uint64_t&, uint64_t&)'
segmentAddressRanges.push_back(std::make_pair<pint_t,
pint_t>(startAddr, endAddr));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from
/opt/local/include/gcc7/c++/bits/stl_algobase.h:64:0,
from /opt/local/include/gcc7/c++/vector:60,
from src/other/machochecker.cpp:34:
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: candidate:
template<class _T1, class _T2> constexpr std::pair<typename
std::__decay_and_strip<_Tp>::__type, typename
std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
make_pair(_T1&& __x, _T2&& __y)
^~~~~~~~~
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: template
argument deduction/substitution failed:
src/other/machochecker.cpp:333:66: note: cannot convert 'startAddr'
(type 'uint64_t {aka long long unsigned int}') to type 'long long unsigned
int&&'
segmentAddressRanges.push_back(std::make_pair<pint_t,
pint_t>(startAddr, endAddr));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/other/machochecker.cpp:350:69: error: no matching function for call to
'make_pair<MachOChecker<x86_64>::pint_t,
MachOChecker<x86_64>::pint_t>(uint64_t&, uint64_t&)'
segmentFileOffsetRanges.push_back(std::make_pair<pint_t,
pint_t>(startOffset, endOffset));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/opt/local/include/gcc7/c++/bits/stl_algobase.h:64:0,
from /opt/local/include/gcc7/c++/vector:60,
from src/other/machochecker.cpp:34:
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: candidate:
template<class _T1, class _T2> constexpr std::pair<typename
std::__decay_and_strip<_Tp>::__type, typename
std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
make_pair(_T1&& __x, _T2&& __y)
^~~~~~~~~
/opt/local/include/gcc7/c++/bits/stl_pair.h:524:5: note: template
argument deduction/substitution failed:
src/other/machochecker.cpp:350:69: note: cannot convert 'startOffset'
(type 'uint64_t {aka long long unsigned int}') to type 'long long unsigned
int&&'
segmentFileOffsetRanges.push_back(std::make_pair<pint_t,
pint_t>(startOffset, endOffset));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
make: *** [src/other/machochecker.o] Error 1
make: Leaving directory
`/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-97/work/ld64-97.17'
Command failed: cd
"/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-97/work/ld64-97.17"
&& /usr/bin/make -j4 -w all CC="/opt/local/bin/gcc-mp-7"
CXX="/opt/local/bin/g++-mp-7" OTHER_CPPFLAGS="-I/opt/local/include
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_ld64/ld64-97/work/dyld-655.1.1/include"
OTHER_CFLAGS="-Os -arch ppc" OTHER_CXXFLAGS="-Os -arch ppc"
OTHER_LDFLAGS="-L/opt/local/lib -Wl,-headerpad_max_install_names -arch
ppc" LLVM_CONFIG=/opt/local/bin/llvm-config-mp-3.5
OTHER_LDFLAGS_LD64="-I/opt/local/libexec/llvm-3.5/include/llvm-c"
Exit code: 2
Error: Failed to build ld64-97: command execution failed
}}}
llvm-3.5 installed:
{{{
Sergey-Fedorovs-Mac-mini:~ svacchanda$ port -v installed llvm-3.5
The following ports are currently installed:
llvm-3.5 @3.5.2_9 (active) requested_variants='' platform='darwin 10'
archs='ppc' date='2022-02-04T00:07:49+0800'
}}}
P. S. `llvm-3.7` and `llvm-5.0` ask for `libcxx`, which fails.
--
Ticket URL: <https://trac.macports.org/ticket/64606>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list