Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fatal error: layout/LETypes.h: No such file or directory #11

Closed
IceCodeNew opened this issue Sep 7, 2020 · 10 comments
Closed

fatal error: layout/LETypes.h: No such file or directory #11

IceCodeNew opened this issue Sep 7, 2020 · 10 comments

Comments

@IceCodeNew
Copy link
Contributor

IceCodeNew commented Sep 7, 2020

I'm wondering it's -DU_LAYOUTEX_IMPLEMENTATION causing this problem. And I'm unable to get fully understand what purpose does this option serve.


OS: Alpine Linux (edge)
Script used: https://github.com/userdocs/qbittorrent-nox-static/blob/ddaf7ce182bf840073943efce3c213e89c68b09c/qbittorrent-nox-static-musl.sh (latest version at this point)
Modifications or changes: nothing

log:

ar r ../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
ar: creating ../lib/libicui18n.a
ranlib ../lib/libicui18n.a
make[1]: Leaving directory '/root/qbittorrent-build/icu/source/i18n'
make[0]: Making `all' in `layoutex'
make[1]: Entering directory '/root/qbittorrent-build/icu/source/layoutex'
   (deps)        plruns.cpp
   (deps)        playout.cpp
   (deps)        LXUtilities.cpp
   (deps)        RunArrays.cpp
   (deps)        ParagraphLayout.cpp
playout.cpp:13:10: fatal error: layout/LETypes.h: No such file or directory
   13 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
plruns.cpp:9:10: fatal error: layout/LETypes.h: No such file or directory
    9 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
compilation terminated.
RunArrays.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory
   10 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
LXUtilities.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory
   10 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
ParagraphLayout.cpp:14:10: fatal error: layout/LETypes.h: No such file or directory
   14 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
   g++   ...  ParagraphLayout.cpp
   g++   ...  RunArrays.cpp
   g++   ...  LXUtilities.cpp
   g++   ...  playout.cpp
   g++   ...  plruns.cpp
RunArrays.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory
   10 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
playout.cpp:13:10: fatal error: layout/LETypes.h: No such file or directory
   13 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
LXUtilities.cpp:10:10: fatal error: layout/LETypes.h: No such file or directory
   10 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
*** Failed compilation command follows: ----------------------------------------------------------
*** Failed compilation command follows: ----------------------------------------------------------
g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o RunArrays.ao RunArrays.cpp
g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o playout.ao playout.cpp
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
make[1]: *** [../config/mh-linux:49: RunArrays.ao] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [../config/mh-linux:49: playout.ao] Error 1
*** Failed compilation command follows: ----------------------------------------------------------
g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o LXUtilities.ao LXUtilities.cpp
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
make[1]: *** [../config/mh-linux:49: LXUtilities.ao] Error 1
ParagraphLayout.cpp:14:10: fatal error: layout/LETypes.h: No such file or directory
   14 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
plruns.cpp:9:10: fatal error: layout/LETypes.h: No such file or directory
    9 | #include "layout/LETypes.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
*** Failed compilation command follows: ----------------------------------------------------------
g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o plruns.ao plruns.cpp
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
make[1]: *** [../config/mh-linux:49: plruns.ao] Error 1
*** Failed compilation command follows: ----------------------------------------------------------
g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o ParagraphLayout.ao ParagraphLayout.cpp
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
make[1]: *** [../config/mh-linux:49: ParagraphLayout.ao] Error 1
make[1]: Leaving directory '/root/qbittorrent-build/icu/source/layoutex'
make: *** [Makefile:153: all-recursive] Error 2

Relative discussion:
https://bugs.freedesktop.org/show_bug.cgi?id=64878

@userdocs
Copy link
Owner

userdocs commented Sep 7, 2020

I am not really able to understand this issue without more context.

OS / Platform.

Script used.

Modifications or changes

Please can you make the issue as informative as possible.

@userdocs
Copy link
Owner

userdocs commented Sep 7, 2020

Does it happen in 3.12. I am not testing on edge.

@IceCodeNew
Copy link
Contributor Author

Does it happen in 3.12. I am not testing on edge.

I won't have a doubt that I can replicate this problem on Alpine Linux 3.12. After all, in the qbittorrent-nox-static-musl.sh script we almost build everything from source. And it seems unlikely that such file not found problem can be lead by the different version of some basic c build environment packages.

@userdocs
Copy link
Owner

userdocs commented Sep 7, 2020

I do not experience this issue.

Alpine linux 3.12 amd x64

   g++   ...  formatted_string_builder.cpp
ar r ../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
ar: creating ../lib/libicui18n.a
ranlib ../lib/libicui18n.a
make[1]: Leaving directory '/root/qbittorrent-build/icu/source/i18n'
make[0]: Making `all' in `io'
make[1]: Entering directory '/root/qbittorrent-build/icu/source/io'
   (deps)        ucln_io.cpp

@IceCodeNew
Copy link
Contributor Author

IceCodeNew commented Sep 7, 2020

I do not experience this issue.

Alpine linux 3.12 amd x64

It's a queer go... I'll give it a shot.
BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve? It seems that ICU are officially encourage users of the "layoutex" ParagraphLayout library using the HarfBuzz engine to build it rather than the ICU LayoutEngine. And the latter has been deprecated for a while.
Maybe we should take those changes into scripts here too? You can find the document here:

http://userguide.icu-project.org/layoutengine/paragraph

@userdocs
Copy link
Owner

userdocs commented Sep 7, 2020

I don't really understand what the problem is here. I cannot reproduce it and i don't specifically include it in the build process.

https://github.com/userdocs/qbittorrent-nox-static/blob/master/qbittorrent-nox-static-musl.sh#L288#L290

Can you please clarify the nature of the issue.

@IceCodeNew
Copy link
Contributor Author

i don't specifically include it in the build process.
Can you please clarify the nature of the issue.

Yes, I can see that too. I submit this issue because I thought we need to specifically pass something to gcc then, as I was believe that we may built some component that is unnecessary, and its dependencies we are not satisfied yet.

@IceCodeNew
Copy link
Contributor Author

At this moment I'm perplexed too. I can only speculate that the verbose log wasn't showing the source of the problem, though such thing is very odd to me. The log itself was emit under command make VERBOSE=1 all

g++ --static -static -I/root/qbittorrent-build/include -ffunction-sections -fdata-sections -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I./unicode -I../common -I./.. -DU_ATTRIBUTE_DEPRECATED= -DU_LAYOUTEX_IMPLEMENTATION -std=c++14 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -c -o plruns.ao plruns.cpp
--- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------

Now I'm not seek for a solution, as your previous advice works for me ;-)
But I'm still trying to get an answer from you, hope that's not ill-mannered for you.

BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve?

@userdocs
Copy link
Owner

userdocs commented Sep 7, 2020

BTW I'm wondering if you can tell me what purpose does this "layoutex" ParagraphLayout library serve?

To be honest, i don't know. I only build icu to use when building boost. Since i can't replicate your issue, it does exactly what i need and i have no specific expectations or requirements fro icu other than it builds and moves on to the next stage.

As long as it works, i don't need to know what ParagraphLayout is or does. I hope that makes sense.

@IceCodeNew
Copy link
Contributor Author

As long as it works, i don't need to know what ParagraphLayout is or does. I hope that makes sense.

Sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants