Opened 2 years ago

Closed 19 months 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)

config.log (58.1 KB) - added by barracuda156 2 years ago.
main.log (1.7 MB) - added by barracuda156 2 years ago.
icu-ppc-universal-fail-after-adding-read-only-relocs-suppress.log (921.9 KB) - added by kencu (Ken) 2 years ago.
ppc32/64 universal fail log after read_only_relocs suppressed used
make.txt (212.7 KB) - added by barracuda156 2 years ago.
make_gcc10.txt (173.2 KB) - added by barracuda156 2 years ago.
plurrule.ii (1.3 MB) - added by barracuda156 2 years ago.

Change History (28)

Changed 2 years ago by barracuda156

Attachment: config.log added

Changed 2 years ago by barracuda156

Attachment: main.log added

comment:1 Changed 2 years ago by kencu (Ken)

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 relocs

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:

-read_only_relocs suppress

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

comment:2 Changed 2 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 in reply to:  1 Changed 2 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 relocs

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:

-read_only_relocs suppress

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

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 2 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.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

Changed 2 years ago by kencu (Ken)

ppc32/64 universal fail log after read_only_relocs suppressed used

comment:5 Changed 2 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 2 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:

https://github.com/unicode-org/icu/blob/06ef8867f35befee7340e35082fefc9d3561d230/icu4c/source/i18n/plurrule.cpp#L1833

or actually better here, for the older version we are trying to build (67):

https://github.com/unicode-org/icu/blob/40252f6fe1dabbe6b043773b639acfae2294add3/icu4c/source/i18n/plurrule.cpp#L1645

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:7 Changed 2 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 Changed 2 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 in reply to:  8 Changed 2 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 Changed 2 years ago by kencu (Ken)

Summary: icu @67.1_4: ppc+ppc64 universal build fails on 10.5.8icu @67.1_4: ppc64 build fails

comment:11 in reply to:  10 Changed 2 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 Changed 2 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.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:13 in reply to:  12 Changed 2 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 in reply to:  12 Changed 2 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 2 years ago by kencu (Ken)

different function, at least. So it’s not just that one function.

OK, this looks to me like ld64 issue, not ICU issue.

next step is see if Iain’s tools fix it with his patches to ld64.

Version 0, edited 2 years ago by kencu (Ken) (next)

comment:16 in reply to:  8 Changed 2 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 2 years ago by barracuda156

Attachment: make.txt added

comment:17 Changed 2 years ago by barracuda156

I reran compilation with gcc10, and it failed as before:

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

I will attach make log now too.

Last edited 2 years ago by barracuda156 (previous) (diff)

Changed 2 years ago by barracuda156

Attachment: make_gcc10.txt added

comment:18 Changed 2 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 2 years ago by barracuda156

Attachment: plurrule.ii added

comment:19 Changed 2 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 Changed 2 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.

Last edited 2 years ago by kencu (Ken) (previous) (diff)

comment:21 in reply to:  20 Changed 2 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 19 months ago by catap (Kirill A. Korinsky)

Owner: set to catap
Resolution: fixed
Status: newclosed

In 3aefb52514bc17fa2d334dd2032ba65514aef03e/macports-ports (master):

icu: update to 71.1

It contains massive revision bump of all ports which depends on icu.

I've also tested to build it with llvm-ar from clang-11 on macOS 10.6
and it works.

Closes: #59515
Closes: #60325
Closes: #64398

[skip ci]

Note: See TracTickets for help on using tickets.