[MacPorts] #18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- I'm on Mac OS X 10.4.11 Tiger on an Intel Mac. In my macports.conf I have universal_archs set to all four architectures (ppc i386 ppc64 x86_64) and cmake gives complaints like: {{{ ld64 warning: in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks//Carbon.framework/Carbon, missing required architecture x86_64 in file }}} and {{{ ld64 warning: in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks//Carbon.framework/Carbon, missing required architecture ppc64 in file }}} Carbon is not available on 64-bit, so cmake should not be attempting to use it when built on 64-bit architectures. {{{ /usr/bin/g++-4.0 -L/mp/lib -arch ppc -arch i386 -arch ppc64 -arch x86_64 -framework Carbon -O2 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -arch ppc64 -arch x86_64 -I/mp/var/macports/build/_Users_rschmidt_macports_dports_devel_cmake/work/cmake-2.6.2/Source -I/mp/var/macports/build/_Users_rschmidt_macports_dports_devel_cmake/work/cmake-2.6.2/Bootstrap.cmk cmake.o cmakemain.o cmakewizard.o cmCommandArgumentLexer.o cmCommandArgumentParser.o cmCommandArgumentParserHelper.o cmDepends.o cmDependsC.o cmDocumentationFormatter.o cmDocumentationFormatterText.o cmPolicies.o cmProperty.o cmPropertyMap.o cmPropertyDefinition.o cmPropertyDefinitionMap.o cmMakeDepend.o cmMakefile.o cmExportFileGenerator.o cmExportInstallFileGenerator.o cmInstallDirectoryGenerator.o cmGeneratedFileStream.o cmGlobalGenerator.o cmLocalGenerator.o cmInstallGenerator.o cmInstallExportGenerator.o cmInstallFilesGenerator.o cmInstallScriptGenerator.o cmInstallTargetGenerator.o cmSourceFile.o cmSourceFileLocation.o cmSystemTools.o cmVersion.o cmFileTimeComparison.o cmGlobalUnixMakefileGenerator3.o cmLocalUnixMakefileGenerator3.o cmMakefileExecutableTargetGenerator.o cmMakefileLibraryTargetGenerator.o cmMakefileTargetGenerator.o cmMakefileUtilityTargetGenerator.o cmBootstrapCommands.o cmCommands.o cmTarget.o cmTest.o cmCustomCommand.o cmDocumentVariables.o cmCacheManager.o cmListFileCache.o cmComputeLinkDepends.o cmComputeLinkInformation.o cmOrderDirectories.o cmComputeTargetDepends.o cmComputeComponentGraph.o cmExprLexer.o cmExprParser.o cmExprParserHelper.o cmListFileLexer.o Directory.o Glob.o RegularExpression.o SystemTools.o ProcessUNIX.o String.o System.o -o cmake ld64 warning: in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks//Carbon.framework/Carbon, missing required architecture x86_64 in file Undefined symbols for architecture x86_64: _CFRelease, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLCreateWithFileSystemPath, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCopyExecutableURL, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCreate, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringGetCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLGetString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringCreateWithCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _kCFAllocatorDefault, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o ld64-62.1 failed: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status ld64 warning: in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks//Carbon.framework/Carbon, missing required architecture ppc64 in file Undefined symbols for architecture ppc64: _CFRelease, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLCreateWithFileSystemPath, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCopyExecutableURL, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCreate, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringGetCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLGetString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringCreateWithCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _kCFAllocatorDefault, referenced from: _kCFAllocatorDefault$non_lazy_ptr in cmBootstrapCommands.o ld64-62.1 failed: symbol(s) not found for architecture ppc64 collect2: ld returned 1 exit status lipo: can't open input file: /var/tmp//ccd7W6JM.out (No such file or directory) make: *** [cmake] Error 1 --------------------------------------------- Error when bootstrapping CMake: Problem while running make --------------------------------------------- Log of errors: /mp/var/macports/build/_Users_rschmidt_macports_dports_devel_cmake/work/cmake-2.6.2/Bootstrap.cmk/cmake_bootstrap.log --------------------------------------------- Error: Target org.macports.configure returned: configure failure: shell command " cd "/mp/var/macports/build/_Users_rschmidt_macports_dports_devel_cmake/work/cmake-2.6.2" && ./configure --prefix=/mp --mandir=/share/man --docdir=/share/doc/cmake --disable-dependency-tracking " returned error 9 Command output: Undefined symbols for architecture ppc64: _CFRelease, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLCreateWithFileSystemPath, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCopyExecutableURL, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFBundleCreate, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringGetCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFURLGetString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _CFStringCreateWithCString, referenced from: cmFindProgramCommand::GetBundleExecutable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cmBootstrapCommands.o _kCFAllocatorDefault, referenced from: _kCFAllocatorDefault$non_lazy_ptr in cmBootstrapCommands.o ld64-62.1 failed: symbol(s) not found for architecture ppc64 collect2: ld returned 1 exit status lipo: can't open input file: /var/tmp//ccd7W6JM.out (No such file or directory) make: *** [cmake] Error 1 --------------------------------------------- Error when bootstrapping CMake: Problem while running make --------------------------------------------- Log of errors: /mp/var/macports/build/_Users_rschmidt_macports_dports_devel_cmake/work/cmake-2.6.2/Bootstrap.cmk/cmake_bootstrap.log --------------------------------------------- Warning: the following items did not execute (for cmake): org.macports.activate org.macports.configure org.macports.build org.macports.destroot org.macports.install Error: Status 1 encountered during processing. }}} -- Ticket URL: <http://trac.macports.org/ticket/18025> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by jmr@…): Carbon is available as 64-bit on Leopard, just not on Tiger. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by ryandesign@…): Replying to [comment:1 jmr@…]:
Carbon is available as 64-bit on Leopard, just not on Tiger.
I see that cmake does build universal for all four architectures on Leopard, but are you sure Leopard has 64-bit Carbon? [http://developer.apple.com/Carbon/ Apple's page about Carbon] says "Carbon is a 32-bit procedural API" and [http://arstechnica.com/reviews/os /mac-os-x-10-5.ars/6 Ars Technica] says "Though several non-GUI parts of the Carbon API that are shared with Cocoa will be supported in 64-bit mode in Leopard, the GUI portions of the Carbon API will ''not''." We recently had to remove some Carbon calls from [ticket:16007 Carbon functions cairo in 64-bit mode]; I assumed it was for this reason. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by vince@…): Definitely, Carbon IS NOT 64-bit capable. Only Cocoa is, and this is not going to evolve in 10.6 Snow Leopard. Carbon is now considered legacy by Apple, the new developments will focus on Cocoa. So, as long as softwares rely on Carbon, they will be 32-bit only. This also includes WxWidgets, for example, until WxCocoa is out. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: assigned Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Changes (by css@…): * status: new => assigned Comment: I'll have to dig a little more into how it's actually using Carbon. CMake's installer tool, CPack, uses Carbon to launch some scripts. Until there are upstream changes, I think that CMake needs to remain 32-bit only. (Although it should still be able to configure 64-bit builds.) -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:5> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: assigned Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by css@…): Some of the CMake bug reports (such as [http://public.kitware.com/Bug/view.php?id=4348 #4348] and [http://public.kitware.com/Bug/view.php?id=6051 #6051]) might be related to these errors. It's not entirely clear if the [http://www.cdash.org/CDash/index.php?project=CMake cmake build dashboard] includes a 64-bit build. It looks like CMake is lazily linking against Carbon when it instead needs to link only against CoreFoundation. Could you attach a verbose build log? -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: assigned Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by ryandesign@…): Replying to [comment:6 css@…]:
Could you attach a verbose build log? Sure, it's [attachment:cmake-4-way-universal.txt attached].
-- Ticket URL: <http://trac.macports.org/ticket/18025#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: assigned Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: cmake -------------------------------------+-------------------------------------- Comment(by css@…): Could you apply this patch and see if it works? It seems to work on my machine ... replacing Carbon with CoreFoundation pulls in the correct symbols, yet CoreFoundation is available universally. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:8> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: invalid | Keywords: Port: cmake | --------------------------------------+------------------------------------- Changes (by toby@…): * status: assigned => closed * resolution: => invalid Comment: This is not a legitimate bug - you should not be building 4-way on Tiger, since it only provides i386/ppc libraries/frameworks. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:10> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: reopened Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: | Keywords: Port: cmake | --------------------------------------+------------------------------------- Changes (by ryandesign@…): * status: closed => reopened * resolution: invalid => Comment: I've built tons of ports 4-way universal on Tiger. If the maintainer doesn't want to fix this port to build 4-way universal on Tiger, then that's "wontfix", not "invalid". But that's for the maintainer to decide, since there is no MacPorts policy that says we won't support 4-way universal builds on Tiger. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:11> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: wontfix | Keywords: Port: cmake | --------------------------------------+------------------------------------- Changes (by toby@…): * status: reopened => closed * resolution: => wontfix Comment: Ok, marking wontfix (it's really cantfix). CoreFoundation is not 64-bit on Tiger, and cmake requires CoreFoundation, thus this bug cannot be fixed. -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:12> MacPorts <http://www.macports.org/> Ports system for Mac OS
#18025: cmake: build failure for 4-way universal: missing required architecture x86_64 in file --------------------------------------+------------------------------------- Reporter: ryandesign@… | Owner: css@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 1.7.0 Resolution: wontfix | Keywords: Port: cmake | --------------------------------------+------------------------------------- Comment(by css@…): Replying to [comment:12 toby@…]:
Ok, marking wontfix (it's really cantfix). CoreFoundation is not 64-bit on Tiger, and cmake requires CoreFoundation, thus this bug cannot be fixed.
That makes sense ... I no longer have access to a Tiger system, so that's good confirmation that the proposed patch wouldn't fix the problem anyway. Thanks for the clarification! -- Ticket URL: <http://trac.macports.org/ticket/18025#comment:13> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts