Opened 3 years ago
Closed 2 years ago
#64398 closed defect (fixed)
icu @67.1_4: ppc64 build fails
Reported by: | barracuda156 | Owned by: | catap (Kirill A. Korinsky) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | PowerPC, Leopard, ppc64 | Cc: | |
Port: | icu |
Description
Opening a dedicated ticket, since this appears to be one of the core problems with building for ppc64. I have added muniversal portgroup, depends_skip_archcheck-append python27, depends_skip_archcheck-append ld64 and depends_skip_archcheck-append llvm-3.4 - otherwise it asked for building llvm-3.4 universal, which is known to fail: https://trac.macports.org/ticket/64253
I also changed the linker to +ld64_97 as recommended here: https://github.com/classilla/tenfourfox/issues/498#issuecomment-418912902
Then icu build proceeded with gcc-mp-7, but eventually failed on this:
/opt/local/bin/ranlib: archive member: ../lib/libicui18n.a(ucln_in.ao) offset in archive not a multiple of 8 (must be since member is an 64-bit object file) /opt/local/bin/ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols /opt/local/bin/ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols /opt/local/bin/ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols ranlib ../lib/libicui18n.a ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols /opt/local/bin/g++-mp-7 -dynamiclib -dynamic -pipe -Os -m64 -D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -Wl,-headerpad_max_install_names -m64 -Wl,-compatibility_version -Wl,67 -Wl,-current_version -Wl,67.1 -install_name /opt/local/lib/libicui18n.67.dylib -o ../lib/libicui18n.67.1.dylib ucln_in.o fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o fmtable_cnv.o choicfmt.o datefmt.o smpdtfmt.o reldtfmt.o dtfmtsym.o udat.o dtptngen.o udatpg.o nfrs.o nfrule.o nfsubs.o rbnf.o numsys.o unumsys.o ucsdet.o ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o astro.o taiwncal.o buddhcal.o persncal.o islamcal.o japancal.o gregoimp.o hebrwcal.o indiancal.o chnsecal.o cecal.o coptccal.o dangical.o ethpccal.o coleitr.o coll.o sortkey.o bocsu.o ucoleitr.o ucol.o ucol_res.o ucol_sit.o collation.o collationsettings.o collationdata.o collationtailoring.o collationdatareader.o collationdatawriter.o collationfcd.o collationiterator.o utf16collationiterator.o utf8collationiterator.o uitercollationiterator.o collationsets.o collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o collationrootelements.o collationdatabuilder.o collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o listformatter.o ulistformatter.o strmatch.o usearch.o search.o stsearch.o translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o nultrans.o remtrans.o casetrn.o titletrn.o tolowtrn.o toupptrn.o anytrans.o name2uni.o uni2name.o nortrans.o quant.o transreg.o brktrans.o regexcmp.o rematch.o repattrn.o regexst.o regextxt.o regeximp.o uregex.o uregexc.o ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o wintzimpl.o windtfmt.o winnmfmt.o basictz.o dtrule.o rbtz.o tzrule.o tztrans.o vtzone.o zonemeta.o standardplural.o upluralrules.o plurrule.o plurfmt.o selfmt.o dtitvfmt.o dtitvinf.o udateintervalformat.o tmunit.o tmutamt.o tmutfmt.o currpinf.o uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o smpdtfst.o ztrans.o zrule.o vzone.o fphdlimp.o fpositer.o ufieldpositer.o decNumber.o decContext.o alphaindex.o tznames.o tznames_impl.o tzgnames.o tzfmt.o compactdecimalformat.o gender.o region.o scriptset.o uregion.o reldatefmt.o quantityformatter.o measunit.o measunit_extra.o sharedbreakiterator.o scientificnumberformatter.o dayperiodrules.o nounit.o number_affixutils.o number_compact.o number_decimalquantity.o number_decimfmtprops.o number_fluent.o number_formatimpl.o number_grouping.o number_integerwidth.o number_longnames.o number_modifiers.o number_notation.o number_output.o number_padding.o number_patternmodifier.o number_patternstring.o number_rounding.o number_scientific.o number_utils.o number_asformat.o number_mapper.o number_multiplier.o number_currencysymbols.o number_skeletons.o number_capi.o double-conversion-string-to-double.o double-conversion-double-to-string.o double-conversion-bignum-dtoa.o double-conversion-bignum.o double-conversion-cached-powers.o double-conversion-fast-dtoa.o double-conversion-strtod.o string_segment.o numparse_parsednumber.o numparse_impl.o numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o numparse_affixes.o numparse_compositions.o numparse_validators.o numrange_fluent.o numrange_impl.o erarules.o formattedvalue.o formattedval_iterimpl.o formattedval_sbimpl.o formatted_string_builder.o -L../lib -licuuc -L../stubdata -licudata -lpthread -lm ld: absolute addressing (perhaps -mdynamic-no-pic) used in icu_67::FixedDecimal::getFractionalDigits(double, int) from plurrule.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs collect2: error: ld returned 1 exit status gnumake[1]: *** [../lib/libicui18n.67.1.dylib] Error 1 gnumake[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64/i18n' gnumake: *** [all-recursive] Error 2 gnumake: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64' Command failed: cd "/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64" && /usr/bin/gnumake -j4 -w all VERBOSE=1 Exit code: 2 Error: Failed to build icu: command execution failed Error: See /opt/local/var/macports/logs/_opt_PPCLeopardPorts_devel_icu/icu/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Can we fix this?
Attachments (6)
Change History (28)
Changed 3 years ago by barracuda156
Attachment: | config.log added |
---|
Changed 3 years ago by barracuda156
comment:1 follow-up: 3 Changed 3 years ago by kencu (Ken)
comment:2 Changed 3 years ago by kencu (Ken)
By the way, it is quite possible that we might find some issues with ppc64 and ld64-127.
I believe that by the time ld64-127 was being worked on at Apple, ppc64 was dropped, and only the vestigial ppc7400 was left. So there might well have been no error checking and no debugging being done to any significant degree with respect to ppc64 in ld64-127.
cctools is likely worse -- the version we use in macports has not been tested against ppc64 in more than a decade. I had to do some work just to get i386 working again on the last upgrade, and even after that someone found a weird rounding error that had been missed by upstream as the code path was never used.
So -- buyer beware!
comment:3 Changed 3 years ago by barracuda156
Replying to kencu:
This error:
ld: absolute addressing (perhaps -mdynamic-no-pic) used in icu_67::FixedDecimal::getFractionalDigits(double, int) from plurrule.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocsIs quite commonly found when building some code archs. The fix is usually to do what the error is telling you to do, ie add:
-read_only_relocs suppressto the linker args.
You will find a number of cases in the ports tree where I did this, and perhaps others have done it too, I didn't look at them all. You usually need to restrict that linker flag to just the build archs where the error is generated, as it is not accepted by some other build archs.
If you grep the ports repo for
read_only_relocs
you will find some reasonable-looking examples.As to WHY this is needed, the best explanation I have come across is here:
https://lists.apple.com/archives/darwin-dev/2009/Jul/msg00123.html
Thank you for suggestion. I added a flag, and got another error in the same place:
/opt/local/bin/ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols /opt/local/bin/ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols /opt/local/bin/ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols ranlib ../lib/libicui18n.a ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols /opt/local/bin/g++-mp-7 -dynamiclib -dynamic -pipe -Os -m64 -D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -Wl,-headerpad_max_install_names -Wl,-read_only_relocs,suppress -m64 -Wl,-compatibility_version -Wl,67 -Wl,-current_version -Wl,67.1 -install_name /opt/local/lib/libicui18n.67.dylib -o ../lib/libicui18n.67.1.dylib ucln_in.o fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o fmtable_cnv.o choicfmt.o datefmt.o smpdtfmt.o reldtfmt.o dtfmtsym.o udat.o dtptngen.o udatpg.o nfrs.o nfrule.o nfsubs.o rbnf.o numsys.o unumsys.o ucsdet.o ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o astro.o taiwncal.o buddhcal.o persncal.o islamcal.o japancal.o gregoimp.o hebrwcal.o indiancal.o chnsecal.o cecal.o coptccal.o dangical.o ethpccal.o coleitr.o coll.o sortkey.o bocsu.o ucoleitr.o ucol.o ucol_res.o ucol_sit.o collation.o collationsettings.o collationdata.o collationtailoring.o collationdatareader.o collationdatawriter.o collationfcd.o collationiterator.o utf16collationiterator.o utf8collationiterator.o uitercollationiterator.o collationsets.o collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o collationrootelements.o collationdatabuilder.o collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o listformatter.o ulistformatter.o strmatch.o usearch.o search.o stsearch.o translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o nultrans.o remtrans.o casetrn.o titletrn.o tolowtrn.o toupptrn.o anytrans.o name2uni.o uni2name.o nortrans.o quant.o transreg.o brktrans.o regexcmp.o rematch.o repattrn.o regexst.o regextxt.o regeximp.o uregex.o uregexc.o ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o wintzimpl.o windtfmt.o winnmfmt.o basictz.o dtrule.o rbtz.o tzrule.o tztrans.o vtzone.o zonemeta.o standardplural.o upluralrules.o plurrule.o plurfmt.o selfmt.o dtitvfmt.o dtitvinf.o udateintervalformat.o tmunit.o tmutamt.o tmutfmt.o currpinf.o uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o smpdtfst.o ztrans.o zrule.o vzone.o fphdlimp.o fpositer.o ufieldpositer.o decNumber.o decContext.o alphaindex.o tznames.o tznames_impl.o tzgnames.o tzfmt.o compactdecimalformat.o gender.o region.o scriptset.o uregion.o reldatefmt.o quantityformatter.o measunit.o measunit_extra.o sharedbreakiterator.o scientificnumberformatter.o dayperiodrules.o nounit.o number_affixutils.o number_compact.o number_decimalquantity.o number_decimfmtprops.o number_fluent.o number_formatimpl.o number_grouping.o number_integerwidth.o number_longnames.o number_modifiers.o number_notation.o number_output.o number_padding.o number_patternmodifier.o number_patternstring.o number_rounding.o number_scientific.o number_utils.o number_asformat.o number_mapper.o number_multiplier.o number_currencysymbols.o number_skeletons.o number_capi.o double-conversion-string-to-double.o double-conversion-double-to-string.o double-conversion-bignum-dtoa.o double-conversion-bignum.o double-conversion-cached-powers.o double-conversion-fast-dtoa.o double-conversion-strtod.o string_segment.o numparse_parsednumber.o numparse_impl.o numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o numparse_affixes.o numparse_compositions.o numparse_validators.o numrange_fluent.o numrange_impl.o erarules.o formattedvalue.o formattedval_iterimpl.o formattedval_sbimpl.o formatted_string_builder.o -L../lib -licuuc -L../stubdata -licudata -lpthread -lm ld: relocation used in icu_67::FixedDecimal::getFractionalDigits(double, int) from plurrule.o not allowed in slidable image collect2: error: ld returned 1 exit status gnumake[1]: *** [../lib/libicui18n.67.1.dylib] Error 1 gnumake[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64/i18n' gnumake: *** [all-recursive] Error 2 gnumake: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64' Command failed: cd "/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc64" && /usr/bin/gnumake -j4 -w all VERBOSE=1 Exit code: 2 Error: Failed to build icu: command execution failed
comment:4 Changed 3 years ago by kencu (Ken)
yes, me too.
-read_only_relocs suppress
changed the error message slightly, but it still failed similarly.
Here's a bit more:
ar r -c ../lib/libicui18n.a ucln_in.ao fmtable.ao format.ao msgfmt.ao umsg.ao numfmt.ao unum.ao decimfmt.ao dcfmtsym.ao fmtable_cnv.ao choicfmt.ao datefmt.ao smpdtfmt.ao reldtfmt.ao dtfmtsym.ao udat.ao dtptngen.ao udatpg.ao nfrs.ao nfrule.ao nfsubs.ao rbnf.ao numsys.ao unumsys.ao ucsdet.ao ucal.ao calendar.ao gregocal.ao timezone.ao simpletz.ao olsontz.ao astro.ao taiwncal.ao buddhcal.ao persncal.ao islamcal.ao japancal.ao gregoimp.ao hebrwcal.ao indiancal.ao chnsecal.ao cecal.ao coptccal.ao dangical.ao ethpccal.ao coleitr.ao coll.ao sortkey.ao bocsu.ao ucoleitr.ao ucol.ao ucol_res.ao ucol_sit.ao collation.ao collationsettings.ao collationdata.ao collationtailoring.ao collationdatareader.ao collationdatawriter.ao collationfcd.ao collationiterator.ao utf16collationiterator.ao utf8collationiterator.ao uitercollationiterator.ao collationsets.ao collationcompare.ao collationfastlatin.ao collationkeys.ao rulebasedcollator.ao collationroot.ao collationrootelements.ao collationdatabuilder.ao collationweights.ao collationruleparser.ao collationbuilder.ao collationfastlatinbuilder.ao listformatter.ao ulistformatter.ao strmatch.ao usearch.ao search.ao stsearch.ao translit.ao utrans.ao esctrn.ao unesctrn.ao funcrepl.ao strrepl.ao tridpars.ao cpdtrans.ao rbt.ao rbt_data.ao rbt_pars.ao rbt_rule.ao rbt_set.ao nultrans.ao remtrans.ao casetrn.ao titletrn.ao tolowtrn.ao toupptrn.ao anytrans.ao name2uni.ao uni2name.ao nortrans.ao quant.ao transreg.ao brktrans.ao regexcmp.ao rematch.ao repattrn.ao regexst.ao regextxt.ao regeximp.ao uregex.ao uregexc.ao ulocdata.ao measfmt.ao currfmt.ao curramt.ao currunit.ao measure.ao utmscale.ao csdetect.ao csmatch.ao csr2022.ao csrecog.ao csrmbcs.ao csrsbcs.ao csrucode.ao csrutf8.ao inputext.ao wintzimpl.ao windtfmt.ao winnmfmt.ao basictz.ao dtrule.ao rbtz.ao tzrule.ao tztrans.ao vtzone.ao zonemeta.ao standardplural.ao upluralrules.ao plurrule.ao plurfmt.ao selfmt.ao dtitvfmt.ao dtitvinf.ao udateintervalformat.ao tmunit.ao tmutamt.ao tmutfmt.ao currpinf.ao uspoof.ao uspoof_impl.ao uspoof_build.ao uspoof_conf.ao smpdtfst.ao ztrans.ao zrule.ao vzone.ao fphdlimp.ao fpositer.ao ufieldpositer.ao decNumber.ao decContext.ao alphaindex.ao tznames.ao tznames_impl.ao tzgnames.ao tzfmt.ao compactdecimalformat.ao gender.ao region.ao scriptset.ao uregion.ao reldatefmt.ao quantityformatter.ao measunit.ao measunit_extra.ao sharedbreakiterator.ao scientificnumberformatter.ao dayperiodrules.ao nounit.ao number_affixutils.ao number_compact.ao number_decimalquantity.ao number_decimfmtprops.ao number_fluent.ao number_formatimpl.ao number_grouping.ao number_integerwidth.ao number_longnames.ao number_modifiers.ao number_notation.ao number_output.ao number_padding.ao number_patternmodifier.ao number_patternstring.ao number_rounding.ao number_scientific.ao number_utils.ao number_asformat.ao number_mapper.ao number_multiplier.ao number_currencysymbols.ao number_skeletons.ao number_capi.ao double-conversion-string-to-double.ao double-conversion-double-to-string.ao double-conversion-bignum-dtoa.ao double-conversion-bignum.ao double-conversion-cached-powers.ao double-conversion-fast-dtoa.ao double-conversion-strtod.ao string_segment.ao numparse_parsednumber.ao numparse_impl.ao numparse_symbols.ao numparse_decimal.ao numparse_scientific.ao numparse_currency.ao numparse_affixes.ao numparse_compositions.ao numparse_validators.ao numrange_fluent.ao numrange_impl.ao erarules.ao formattedvalue.ao formattedval_iterimpl.ao formattedval_sbimpl.ao formatted_string_builder.ao /opt/universal/bin/g++-mp-7 -dynamiclib -dynamic -pipe -Os -m64 -D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -Wl,-headerpad_max_install_names -read_only_relocs suppress -m64 -Wl,-compatibility_version -Wl,67 -Wl,-current_version -Wl,67.1 -install_name /opt/universal/lib/libicui18n.67.dylib -o ../lib/libicui18n.67.1.dylib ucln_in.o fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o fmtable_cnv.o choicfmt.o datefmt.o smpdtfmt.o reldtfmt.o dtfmtsym.o udat.o dtptngen.o udatpg.o nfrs.o nfrule.o nfsubs.o rbnf.o numsys.o unumsys.o ucsdet.o ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o astro.o taiwncal.o buddhcal.o persncal.o islamcal.o japancal.o gregoimp.o hebrwcal.o indiancal.o chnsecal.o cecal.o coptccal.o dangical.o ethpccal.o coleitr.o coll.o sortkey.o bocsu.o ucoleitr.o ucol.o ucol_res.o ucol_sit.o collation.o collationsettings.o collationdata.o collationtailoring.o collationdatareader.o collationdatawriter.o collationfcd.o collationiterator.o utf16collationiterator.o utf8collationiterator.o uitercollationiterator.o collationsets.o collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o collationrootelements.o collationdatabuilder.o collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o listformatter.o ulistformatter.o strmatch.o usearch.o search.o stsearch.o translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o nultrans.o remtrans.o casetrn.o titletrn.o tolowtrn.o toupptrn.o anytrans.o name2uni.o uni2name.o nortrans.o quant.o transreg.o brktrans.o regexcmp.o rematch.o repattrn.o regexst.o regextxt.o regeximp.o uregex.o uregexc.o ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o wintzimpl.o windtfmt.o winnmfmt.o basictz.o dtrule.o rbtz.o tzrule.o tztrans.o vtzone.o zonemeta.o standardplural.o upluralrules.o plurrule.o plurfmt.o selfmt.o dtitvfmt.o dtitvinf.o udateintervalformat.o tmunit.o tmutamt.o tmutfmt.o currpinf.o uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o smpdtfst.o ztrans.o zrule.o vzone.o fphdlimp.o fpositer.o ufieldpositer.o decNumber.o decContext.o alphaindex.o tznames.o tznames_impl.o tzgnames.o tzfmt.o compactdecimalformat.o gender.o region.o scriptset.o uregion.o reldatefmt.o quantityformatter.o measunit.o measunit_extra.o sharedbreakiterator.o scientificnumberformatter.o dayperiodrules.o nounit.o number_affixutils.o number_compact.o number_decimalquantity.o number_decimfmtprops.o number_fluent.o number_formatimpl.o number_grouping.o number_integerwidth.o number_longnames.o number_modifiers.o number_notation.o number_output.o number_padding.o number_patternmodifier.o number_patternstring.o number_rounding.o number_scientific.o number_utils.o number_asformat.o number_mapper.o number_multiplier.o number_currencysymbols.o number_skeletons.o number_capi.o double-conversion-string-to-double.o double-conversion-double-to-string.o double-conversion-bignum-dtoa.o double-conversion-bignum.o double-conversion-cached-powers.o double-conversion-fast-dtoa.o double-conversion-strtod.o string_segment.o numparse_parsednumber.o numparse_impl.o numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o numparse_affixes.o numparse_compositions.o numparse_validators.o numrange_fluent.o numrange_impl.o erarules.o formattedvalue.o formattedval_iterimpl.o formattedval_sbimpl.o formatted_string_builder.o -L../lib -licuuc -L../stubdata -licudata -lpthread -lm /opt/universal/bin/ranlib: archive member: ../lib/libicui18n.a(ucln_in.ao) offset in archive not a multiple of 8 (must be since member is an 64-bit object file) /opt/universal/bin/ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols /opt/universal/bin/ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols /opt/universal/bin/ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols ranlib ../lib/libicui18n.a ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols ld: relocation used in icu_67::FixedDecimal::getFractionalDigits(double, int) from plurrule.o not allowed in slidable image collect2: error: ld returned 1 exit status gnumake[1]: *** [../lib/libicui18n.67.1.dylib] Error 1
At this moment in time, I have no idea why it fails. This looks wrong, but may not be the whole error:
archive member: ../lib/libicui18n.a(ucln_in.ao) offset in archive not a multiple of 8
I'll attach the full log for anyone inspired.
Changed 3 years ago by kencu (Ken)
Attachment: | icu-ppc-universal-fail-after-adding-read-only-relocs-suppress.log added |
---|
ppc32/64 universal fail log after read_only_relocs suppressed used
comment:5 Changed 3 years ago by kencu (Ken)
Summary: | How to build icu for ppc+ppc64 on 10.5.8? → icu @67.1_4: ppc+ppc64 universal build fails on 10.5.8 |
---|
comment:6 Changed 3 years ago by kencu (Ken)
The build line for the file that generates the error looks benign enough:
/opt/universal/bin/g++-mp-7 -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I. -I../common -pipe -Os -m64 -D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT "plurrule.d plurrule.o plurrule.ao" -o plurrule.o plurrule.cpp
It looks like the code in question is here:
or actually better here, for the older version we are trying to build (67):
comment:7 Changed 3 years ago by kencu (Ken)
I tried building with -no-pie
in the CFLAGS and CXXFLAGS, but that did not fix it. Then I added -Wl,-read_only,relocs,suppress
to the LDFLAGS, along with the -no-pie
and that also did not work.
I wondered if perhaps something was up with ld64-97
, which I am using at the moment to link, but using /usr/bin/ld
to do the link also failed in a similar way.
So -- something about the way that function is written and is linking is making ppc64 darwin very cranky.
Just exactly what it is, I don't know at the moment.
comment:8 follow-ups: 9 16 Changed 3 years ago by kencu (Ken)
barracuda, can you try building ICU outside of macports with your handmade gcc7 (and if that fails, one of the newer ones)?
Do it like this:
cd ~ mkdir icutest cd icutest cp /opt/local/var/macports/distfiles/icu/icu4c-67_1-src.tgz ./ open /opt/local/var/macports/distfiles/icu/icu4c-67_1-src.tgz cd icu/source export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
then use the path to your desired gcc7 in here:
CC="/opt/universal/bin/gcc-mp-7 -m64 -O2" CXX="/opt/universal/bin/g++-mp-7 -m64 -O2" PYTHON=/opt/universal/bin/python2.7 ./configure
and then do this:
make VERBOSE=1 -j4
and see what happens.
If any of your gcc versions inside or outside of macports can build icu 64 bit, let me know.
comment:9 Changed 3 years ago by barracuda156
Replying to kencu:
barracuda, can you try building ICU outside of macports with your handmade gcc7 (and if that fails, one of the newer ones)? If any of your gcc versions inside or outside of macports can build icu 64 bit, let me know.
Sure, I will try and update you here. (Sorry for delay, I was away from my PPC machine.)
comment:10 follow-up: 11 Changed 3 years ago by kencu (Ken)
Summary: | icu @67.1_4: ppc+ppc64 universal build fails on 10.5.8 → icu @67.1_4: ppc64 build fails |
---|
comment:11 Changed 3 years ago by barracuda156
Replying to kencu:
I get an error using gcc10:
In function ‘const UChar* icu_67::ufmtval_getString_67(const UFormattedValue*, int32_t*, UErrorCode*)’: cc1plus: warning: function may return address of local variable [-Wreturn-local-addr] formattedvalue.cpp:205:19: note: declared here 205 | UnicodeString readOnlyAlias = impl->fFormattedValue->toTempString(*ec); | ^~~~~~~~~~~~~ /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ -m64 -O2 -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I. -I../common -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT "formattedval_sbimpl.d formattedval_sbimpl.o formattedval_sbimpl.ao" -o formattedval_sbimpl.o formattedval_sbimpl.cpp /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ -m64 -O2 -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I. -I../common -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT "formatted_string_builder.d formatted_string_builder.o formatted_string_builder.ao" -o formatted_string_builder.o formatted_string_builder.cpp /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ -m64 -O2 -dynamiclib -dynamic -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -Wl,-compatibility_version -Wl,67 -Wl,-current_version -Wl,67.1 -install_name libicui18n.67.dylib -o ../lib/libicui18n.67.1.dylib ucln_in.o fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o fmtable_cnv.o choicfmt.o datefmt.o smpdtfmt.o reldtfmt.o dtfmtsym.o udat.o dtptngen.o udatpg.o nfrs.o nfrule.o nfsubs.o rbnf.o numsys.o unumsys.o ucsdet.o ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o astro.o taiwncal.o buddhcal.o persncal.o islamcal.o japancal.o gregoimp.o hebrwcal.o indiancal.o chnsecal.o cecal.o coptccal.o dangical.o ethpccal.o coleitr.o coll.o sortkey.o bocsu.o ucoleitr.o ucol.o ucol_res.o ucol_sit.o collation.o collationsettings.o collationdata.o collationtailoring.o collationdatareader.o collationdatawriter.o collationfcd.o collationiterator.o utf16collationiterator.o utf8collationiterator.o uitercollationiterator.o collationsets.o collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o collationrootelements.o collationdatabuilder.o collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o listformatter.o ulistformatter.o strmatch.o usearch.o search.o stsearch.o translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o nultrans.o remtrans.o casetrn.o titletrn.o tolowtrn.o toupptrn.o anytrans.o name2uni.o uni2name.o nortrans.o quant.o transreg.o brktrans.o regexcmp.o rematch.o repattrn.o regexst.o regextxt.o regeximp.o uregex.o uregexc.o ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o wintzimpl.o windtfmt.o winnmfmt.o basictz.o dtrule.o rbtz.o tzrule.o tztrans.o vtzone.o zonemeta.o standardplural.o upluralrules.o plurrule.o plurfmt.o selfmt.o dtitvfmt.o dtitvinf.o udateintervalformat.o tmunit.o tmutamt.o tmutfmt.o currpinf.o uspoof.o uspoof_impl.o uspoof_build.o uspoof_conf.o smpdtfst.o ztrans.o zrule.o vzone.o fphdlimp.o fpositer.o ufieldpositer.o decNumber.o decContext.o alphaindex.o tznames.o tznames_impl.o tzgnames.o tzfmt.o compactdecimalformat.o gender.o region.o scriptset.o uregion.o reldatefmt.o quantityformatter.o measunit.o measunit_extra.o sharedbreakiterator.o scientificnumberformatter.o dayperiodrules.o nounit.o number_affixutils.o number_compact.o number_decimalquantity.o number_decimfmtprops.o number_fluent.o number_formatimpl.o number_grouping.o number_integerwidth.o number_longnames.o number_modifiers.o number_notation.o number_output.o number_padding.o number_patternmodifier.o number_patternstring.o number_rounding.o number_scientific.o number_utils.o number_asformat.o number_mapper.o number_multiplier.o number_currencysymbols.o number_skeletons.o number_capi.o double-conversion-string-to-double.o double-conversion-double-to-string.o double-conversion-bignum-dtoa.o double-conversion-bignum.o double-conversion-cached-powers.o double-conversion-fast-dtoa.o double-conversion-strtod.o string_segment.o numparse_parsednumber.o numparse_impl.o numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o numparse_affixes.o numparse_compositions.o numparse_validators.o numrange_fluent.o numrange_impl.o erarules.o formattedvalue.o formattedval_iterimpl.o formattedval_sbimpl.o formatted_string_builder.o -L../lib -licuuc -L../stubdata -licudata -lpthread -lm ld: absolute addressing (perhaps -mdynamic-no-pic) used in __ZN6icu_6712FixedDecimal8decimalsEd from plurrule.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs collect2: error: ld returned 1 exit status make[1]: *** [../lib/libicui18n.67.1.dylib] Error 1 make: *** [all-recursive] Error 2
Since I did not yet rebuild gcc7 in a separate prefix, I used this to configure:
36-197:icutest svacchanda$ cd /Users/svacchanda/icutest/icu/source 36-197:source svacchanda$ export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 36-197:source svacchanda$ CC="/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/gcc -m64 -O2" CXX="/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ -m64 -O2" PYTHON=/opt/local/bin/python2.7 ./configure
comment:12 follow-ups: 13 14 Changed 3 years ago by kencu (Ken)
Yeah, so same error exactly...
Is there any gcc version you have that uses Iain's tools (cctools/ld64)? gcc11?
At the moment, I don't know if this is a ppc64 linker bug, or something to do with the way that function is written in ICU.
comment:13 Changed 3 years ago by barracuda156
Replying to kencu:
Yeah, so same error exactly... Is there any gcc version you have that uses Iain's tools (cctools/ld64)? gcc11?
No, since from what I understood from Iain, at the moment it is pointless to use his xtools, there is unresolved library conflict issue. (Correct me if I am wrong.)
I am very much willing to try rebuilding gcc11 with linking to his xtools, once we have a procedure to accomplish that.
comment:14 Changed 3 years ago by barracuda156
Replying to kencu:
Yeah, so same error exactly...
Is there any gcc version you have that uses Iain's tools (cctools/ld64)? gcc11?
At the moment, I don't know if this is a ppc64 linker bug, or something to do with the way that function is written in ICU.
I tried to build R for ppc64 now outside Macports with Iain's gcc11 and got a very similar ld error:
/opt/svacchanda/gcc11/bin/gcc -m64 -O2 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -fopenmp -L /opt/local/lib -L /usr/X11/lib -install_name libR.dylib -compatibility_version 4.1.0 -current_version 4.1.2 -headerpad_max_install_names -o libR.dylib CommandLineArgs.o Rdynload.o Renviron.o RNG.o agrep.o altclasses.o altrep.o apply.o arithmetic.o array.o attrib.o bind.o builtin.o character.o coerce.o colors.o complex.o connections.o context.o cum.o dcf.o datetime.o debug.o deparse.o devices.o dotcode.o dounzip.o dstruct.o duplicate.o edit.o engine.o envir.o errors.o eval.o format.o gevents.o gram.o gram-ex.o graphics.o grep.o identical.o inlined.o inspect.o internet.o iosupport.o lapack.o list.o localecharset.o logic.o main.o mapply.o match.o memory.o names.o objects.o options.o paste.o patterns.o platform.o plot.o plot3d.o plotmath.o print.o printarray.o printvector.o printutils.o qsort.o radixsort.o random.o raw.o registration.o relop.o rlocale.o saveload.o scan.o seq.o serialize.o sort.o source.o split.o sprintf.o startup.o subassign.o subscript.o subset.o summary.o sysutils.o times.o unique.o util.o version.o g_alab_her.o g_cntrlify.o g_fontdb.o g_her_glyph.o xxxpr.o `ls ../unix/*.o ../appl/*.o ../nmath/*.o` ../extra/tre/libtre.a ../extra/tzone/libtz.a -L"../../lib" -lRblas -lgfortran -lm -lef_ppc -lintl -Wl,-framework -Wl,CoreFoundation -lreadline -L/opt/local/lib -lpcre2-8 -llzma -lbz2 -lz -licucore -ldl -lm -liconv ld: absolute addressing (perhaps -mdynamic-no-pic) used in _walker_ProbSampleReplace from random.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs collect2: error: ld returned 1 exit status make[3]: *** [libR.dylib] Error 1 make[2]: *** [R] Error 2 make[1]: *** [R] Error 1 make: *** [R] Error 1
Notice ld: absolute addressing (perhaps -mdynamic-no-pic) used in _walker_ProbSampleReplace from random.o not allowed in slidable image
comment:15 Changed 3 years ago by kencu (Ken)
different function, at least. So it’s not just that one function.
OK, this looks to me like gcc or ld64 issue, not ICU or MacPorts issue.
next step might be to see if Iain’s tools fix it with his patches to ld64.
comment:16 Changed 3 years ago by barracuda156
Replying to kencu:
barracuda, can you try building ICU outside of macports with your handmade gcc7 (and if that fails, one of the newer ones)?
Hmm, I tried now with gcc11 and it looks it might have built.
This is what I used:
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin CC="/opt/svacchanda/gcc11/bin/gcc -m64 -O2" CXX="/opt/svacchanda/gcc11/bin/g++ -m64 -O2" PYTHON=/opt/local/bin/python2.7 ./configure make VERBOSE=1 -j4 >make.txt
I did get a number of warnings but no errors. I will attach make log now.
Changed 3 years ago by barracuda156
comment:17 Changed 3 years ago by barracuda156
I reran compilation with gcc10, and it failed as before. I will attach make log now too.
Changed 3 years ago by barracuda156
Attachment: | make_gcc10.txt added |
---|
comment:18 Changed 3 years ago by barracuda156
Error details with gcc10:
36-191:i18n svacchanda$ /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ -v -save-temps -m64 -O2 -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I. -I../common -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT "plurrule.d plurrule.o plurrule.ao" -o plurrule.o plurrule.cpp Using built-in specs. COLLECT_GCC=/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/bin/g++ Target: powerpc-apple-darwin9 Configured with: ../configure --prefix=/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc --build=powerpc-apple-darwin9 --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=all CC=gcc-4.2 CXX=g++-4.2 Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.3.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-O2' '-D' 'U_ATTRIBUTE_DEPRECATED=' '-D' 'U_I18N_IMPLEMENTATION' '-D' 'U_HAVE_STRTOD_L=1' '-D' 'U_HAVE_XLOCALE_H=1' '-I' '.' '-I' '../common' '-O2' '-Wextra' '-Wall' '-Wpedantic' '-Wpointer-arith' '-Wwrite-strings' '-Wno-long-long' '-std=c++11' '-fvisibility=hidden' '-fno-common' '-c' '-Zdynamic' '-MMD' '-MT' 'plurrule.d plurrule.o plurrule.ao' '-o' 'plurrule.o' '-mmacosx-version-min=10.5.0' '-asm_macosx_version_min=10.5' '-nodefaultexport' '-shared-libgcc' /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/libexec/gcc/powerpc-apple-darwin9/10.3.0/cc1plus -E -quiet -v -I . -I ../common -imultilib ppc64 -MMD plurrule.d -MT plurrule.d plurrule.o plurrule.ao -D__DYNAMIC__ -D U_ATTRIBUTE_DEPRECATED= -D U_I18N_IMPLEMENTATION -D U_HAVE_STRTOD_L=1 -D U_HAVE_XLOCALE_H=1 plurrule.cpp -fPIC -m64 -mmacosx-version-min=10.5.0 -std=c++11 -Wextra -Wall -Wpedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -fvisibility=hidden -fno-common -O2 -O2 -fpch-preprocess -o plurrule.ii ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../../powerpc-apple-darwin9/include" #include "..." search starts here: #include <...> search starts here: . ../common /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../../include/c++/10.3.0 /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../../include/c++/10.3.0/powerpc-apple-darwin9/ppc64 /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../../include/c++/10.3.0/backward /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/include /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/include /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/include-fixed /usr/include /System/Library/Frameworks /Library/Frameworks End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-O2' '-D' 'U_ATTRIBUTE_DEPRECATED=' '-D' 'U_I18N_IMPLEMENTATION' '-D' 'U_HAVE_STRTOD_L=1' '-D' 'U_HAVE_XLOCALE_H=1' '-I' '.' '-I' '../common' '-O2' '-Wextra' '-Wall' '-Wpedantic' '-Wpointer-arith' '-Wwrite-strings' '-Wno-long-long' '-std=c++11' '-fvisibility=hidden' '-fno-common' '-c' '-Zdynamic' '-MMD' '-MT' 'plurrule.d plurrule.o plurrule.ao' '-o' 'plurrule.o' '-mmacosx-version-min=10.5.0' '-asm_macosx_version_min=10.5' '-nodefaultexport' '-shared-libgcc' /opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/libexec/gcc/powerpc-apple-darwin9/10.3.0/cc1plus -fpreprocessed plurrule.ii -fPIC -quiet -dumpbase plurrule.cpp -m64 -mmacosx-version-min=10.5.0 -auxbase-strip plurrule.o -O2 -O2 -Wextra -Wall -Wpedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -version -fvisibility=hidden -fno-common -o plurrule.s GNU C++11 (GCC) version 10.3.0 (powerpc-apple-darwin9) compiled by GNU C version 10.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++11 (GCC) version 10.3.0 (powerpc-apple-darwin9) compiled by GNU C version 10.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: ea82a47e8531546c56f15540bada6c03 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-O2' '-D' 'U_ATTRIBUTE_DEPRECATED=' '-D' 'U_I18N_IMPLEMENTATION' '-D' 'U_HAVE_STRTOD_L=1' '-D' 'U_HAVE_XLOCALE_H=1' '-I' '.' '-I' '../common' '-O2' '-Wextra' '-Wall' '-Wpedantic' '-Wpointer-arith' '-Wwrite-strings' '-Wno-long-long' '-std=c++11' '-fvisibility=hidden' '-fno-common' '-c' '-Zdynamic' '-MMD' '-MT' 'plurrule.d plurrule.o plurrule.ao' '-o' 'plurrule.o' '-mmacosx-version-min=10.5.0' '-nodefaultexport' '-shared-libgcc' /usr/bin/as -v -I . -I ../common -arch ppc64 -o plurrule.o plurrule.s Apple Inc version cctools-698.1~1, GNU assembler version 1.38 COMPILER_PATH=/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/libexec/gcc/powerpc-apple-darwin9/10.3.0/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/libexec/gcc/powerpc-apple-darwin9/10.3.0/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/libexec/gcc/powerpc-apple-darwin9/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/ LIBRARY_PATH=/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/ppc64/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../ppc64/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/:/opt/iains/powerpc-apple-darwin9/gcc-10-3-ppc/lib/gcc/powerpc-apple-darwin9/10.3.0/../../../ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-O2' '-D' 'U_ATTRIBUTE_DEPRECATED=' '-D' 'U_I18N_IMPLEMENTATION' '-D' 'U_HAVE_STRTOD_L=1' '-D' 'U_HAVE_XLOCALE_H=1' '-I' '.' '-I' '../common' '-O2' '-Wextra' '-Wall' '-Wpedantic' '-Wpointer-arith' '-Wwrite-strings' '-Wno-long-long' '-std=c++11' '-fvisibility=hidden' '-fno-common' '-c' '-Zdynamic' '-MMD' '-MT' 'plurrule.d plurrule.o plurrule.ao' '-o' 'plurrule.o' '-mmacosx-version-min=10.5.0' '-nodefaultexport' '-shared-libgcc' 36-191:i18n svacchanda$
Changed 3 years ago by barracuda156
Attachment: | plurrule.ii added |
---|
comment:19 Changed 3 years ago by barracuda156
Trying to build with macports-gcc-6
gives another error:
ld: duplicate symbol icu_67::number::NumberFormatterSettings<icu_67::number::UnlocalizedNumberFormatter>::copyErrorTo(UErrorCode&) const in number_skeletons.o and number_fluent.o collect2: error: ld returned 1 exit status gnumake[1]: *** [../lib/libicui18n.67.1.dylib] Error 1 gnumake[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc/i18n' gnumake: *** [all-recursive] Error 2 gnumake: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc' Command failed: cd "/opt/local/var/macports/build/_opt_PPCLeopardPorts_devel_icu/icu/work/icu/source-ppc" && /usr/bin/gnumake -j4 -w all VERBOSE=1 Exit code: 2 Error: Failed to build icu: command execution failed Error: See /opt/local/var/macports/logs/_opt_PPCLeopardPorts_devel_icu/icu/main.log for details.
comment:20 follow-up: 21 Changed 3 years ago by kencu (Ken)
we know this ticket is a bug in the gcc ppc64 target that needs upstream fixing:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104117
the error building icu with older gcc versions we did see before (I held back icu on my systems for several years due to this). Indeed, not sure it is the same error.
comment:21 Changed 3 years ago by barracuda156
Replying to kencu:
we know this ticket is a bug in the gcc ppc64 target that needs upstream fixing:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104117
the error building icu with older gcc versions we did see before (I held back icu on my systems for several years due to this). Indeed, not sure it is the same error.
Maybe different error. Iain responded to it and confirmed it is reproduced, but they won’t fix: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104183
comment:22 Changed 2 years ago by catap (Kirill A. Korinsky)
Owner: | set to catap |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This error:
Is quite commonly found when building some code archs. The fix is usually to do what the error is telling you to do, ie add:
to the linker args.
You will find a number of cases in the ports tree where I did this, and perhaps others have done it too, I didn't look at them all. You usually need to restrict that linker flag to just the build archs where the error is generated, as it is not accepted by some other build archs.
If you grep the ports repo for
read_only_relocs
you will find some reasonable-looking examples.As to WHY this is needed, the best explanation I have come across is here:
https://lists.apple.com/archives/darwin-dev/2009/Jul/msg00123.html