#50309: clang-3.7 @3.7.1_2+analyzer+openmp patch failure -------------------------+------------------------ Reporter: mopihopi@… | Owner: eborisch@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.4 Resolution: | Keywords: Port: clang-3.7 | -------------------------+------------------------ Comment (by braumann@…): Thanks, apparently your correction for `openmp-locations.patch` has worked, however, I run into more trouble, when I try to install `clang-3.7 @3.7.1_2` with the same variants as I did for `3.7.0_2`: {{{ $ sudo port -s patch clang-3.7 +analyzer +assertions +openmp ... :info:patch patching file lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp :info:patch Reversed (or previously applied) patch detected! Assume -R? [n] :info:patch Apply anyway? [n] :info:patch Skipping patch. :info:patch 2 out of 2 hunks ignored -- saving rejects to file lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp.rej :info:patch Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.7/clang-3.7/work/llvm-3.7.1.src" && /usr/bin/patch -p1 < '/opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/llvm-3.7/files/0001 -Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch' :info:patch Exit code: 1 ... }}} Inside `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.7/clang-3.7/work/llvm-3.7.1.src/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp.rej` I found: {{{ *************** *** 201,216 **** // FIXME: This should be in a separate file. namespace { class DarwinPPCAsmBackend : public PPCAsmBackend { public: - DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { } MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override { bool is64 = getPointerSize() == 8; return createPPCMachObjectWriter( OS, /*Is64Bit=*/is64, (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC), - MachO::CPU_SUBTYPE_POWERPC_ALL); } }; --- 201,223 ---- // FIXME: This should be in a separate file. namespace { class DarwinPPCAsmBackend : public PPCAsmBackend { + Triple TheTriple; public: + DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, false), TheTriple(TT) { } MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override { bool is64 = getPointerSize() == 8; + MachO::CPUSubTypePowerPC CS = MachO::CPU_SUBTYPE_POWERPC_ALL; + + if (TheTriple.isOSDarwin() && !TheTriple.isMacOSXVersionLT(10,5)) { + CS = MachO::CPU_SUBTYPE_POWERPC_7400; + } + return createPPCMachObjectWriter( OS, /*Is64Bit=*/is64, (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC), + CS); } }; *************** *** 232,238 **** const MCRegisterInfo &MRI, const Triple &TT, StringRef CPU) { if (TT.isOSDarwin()) - return new DarwinPPCAsmBackend(T); uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS()); bool IsLittleEndian = TT.getArch() == Triple::ppc64le; --- 239,245 ---- const MCRegisterInfo &MRI, const Triple &TT, StringRef CPU) { if (TT.isOSDarwin()) + return new DarwinPPCAsmBackend(T, TT); uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS()); bool IsLittleEndian = TT.getArch() == Triple::ppc64le; }}} Hope you have an idea on how to fix this problem, thanks. -- Ticket URL: <https://trac.macports.org/ticket/50309#comment:8> MacPorts <https://www.macports.org/> Ports system for OS X