Raphael10
Raphael10

Reputation: 3088

harfbuzz building and installation in Ubuntu 24.04 : undefined reference to uscript_getShortName_72

I'm stuck with harfbuzz building and installation in Ubuntu 24.04

meson builddir :

raphy@raohy:~/Downloads$ git clone https://github.com/harfbuzz/harfbuzz.git
Cloning into 'harfbuzz'...
remote: Enumerating objects: 107603, done.
remote: Counting objects: 100% (16756/16756), done.
remote: Compressing objects: 100% (852/852), done.
remote: Total 107603 (delta 16245), reused 16030 (delta 15904), pack-reused 90847 (from 1)
Receiving objects: 100% (107603/107603), 100.17 MiB | 31.79 MiB/s, done.
Resolving deltas: 100% (81744/81744), done.

raphy@raohy:~/Downloads$ cd harfbuzz/
raphy@raohy:~/Downloads/harfbuzz$ 

raphy@raohy:~/Downloads/harfbuzz$ meson setup --includedir unicode /usr/local/include/unicode
Directory already configured.


raphy@raohy:~/Downloads/harfbuzz$ meson build
The Meson build system
Version: 1.3.2
Source dir: /home/raphy/Downloads/harfbuzz
Build dir: /home/raphy/Downloads/harfbuzz/buila
Build type: native build
Project name: harfbuzz
Project version: 10.0.1
C compiler for the host machine: ccache cc (gcc 12.3.0 "cc (Ubuntu 12.3.0-17ubuntu1) 12.3.0")
C linker for the host machine: cc ld.bfd 2.42
C++ compiler for the host machine: ccache c++ (gcc 13.2.0 "c++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0")
C++ linker for the host machine: c++ ld.bfd 2.42
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C++ supports link arguments -Bsymbolic-functions: YES 
Compiler for C++ supports arguments -fno-exceptions: YES 
Compiler for C++ supports arguments -fno-rtti: YES 
Compiler for C++ supports arguments -fno-threadsafe-statics: YES 
Compiler for C++ supports arguments -fvisibility-inlines-hidden: YES 
Library m found: YES
Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1
Run-time dependency freetype2 found: YES 26.1.20
Run-time dependency glib-2.0 found: YES 2.80.0
Run-time dependency gobject-2.0 found: YES 2.80.0
Dependency graphite2 skipped: feature graphite2 disabled
Dependency graphite2 skipped: feature graphite disabled
Library iwasm skipped: feature wasm disabled
Run-time dependency icu-uc found: YES 74.2
Run-time dependency cairo found: YES 1.18.0
Run-time dependency cairo-ft found: YES 1.18.0
Run-time dependency chafa found: YES 1.14.0
Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES 
Run-time dependency threads found: YES
Has header "unistd.h" : YES 
Has header "sys/mman.h" : YES 
Has header "stdbool.h" : YES 
Has header "xlocale.h" : NO 
Checking for function "atexit" : YES 
Checking for function "mprotect" : YES 
Checking for function "sysconf" : YES 
Checking for function "getpagesize" : YES 
Checking for function "mmap" : YES 
Checking for function "isatty" : YES 
Checking for function "uselocale" : YES 
Checking for function "newlocale" : YES 
Checking for function "sincosf" : YES 
Checking for function "cairo_user_font_face_set_render_color_glyph_func" with dependency cairo: YES 
Checking for function "cairo_font_options_get_custom_palette_color" with dependency cairo: YES 
Checking for function "cairo_user_scaled_font_get_foreground_source" with dependency cairo: YES 
Checking for function "FT_Get_Var_Blend_Coordinates" with dependency freetype2: YES 
Checking for function "FT_Set_Var_Blend_Coordinates" with dependency freetype2: YES 
Checking for function "FT_Done_MM_Var" with dependency freetype2: YES 
Checking for function "FT_Get_Transform" with dependency freetype2: YES 
Program gen-hb-version.py found: YES (/home/raphy/Downloads/harfbuzz/src/gen-hb-version.py)
Configuring hb-version.h with command
Program ragel found: NO
src/meson.build:421: WARNING: You have to install ragel if you are going to develop HarfBuzz itself
Program gen-harfbuzzcc.py found: YES (/home/raphy/Downloads/harfbuzz/src/gen-harfbuzzcc.py)
Configuring hb-features.h using configuration
Configuring hb-supported-features.h using configuration
Program gen-def.py found: YES (/home/raphy/Downloads/harfbuzz/src/gen-def.py)
Fetching value of define "_MSC_FULL_VER" : (undefined) 
Program gen-harfbuzzcc.py found: YES (/home/raphy/Downloads/harfbuzz/src/gen-harfbuzzcc.py)
Dependency cairo found: YES 1.18.0 (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
Fetching value of define "_MSC_FULL_VER" : (undefined) (cached)
src/meson.build:824: WARNING: Project targets '>= 0.55.0' but uses feature introduced in '1.3.0': fs.relative_to.
Configuring harfbuzz-config.cmake using configuration
Dependency glib-2.0 found: YES 2.80.0 (cached)
Program /usr/bin/glib-mkenums found: YES (/usr/bin/glib-mkenums)
Dependency glib-2.0 found: YES 2.80.0 (cached)
Program /usr/bin/glib-mkenums found: YES (/usr/bin/glib-mkenums)
Program fix_get_types.py found: YES (/home/raphy/Downloads/harfbuzz/src/fix_get_types.py)
Program fix_get_types.py found: YES (/home/raphy/Downloads/harfbuzz/src/fix_get_types.py)
Program g-ir-scanner found: YES (/usr/bin/g-ir-scanner)
Run-time dependency gobject-introspection-1.0 found: YES 1.80.1
Dependency gobject-introspection-1.0 found: YES 1.80.1 (cached)
Program /usr/bin/x86_64-linux-gnu-g-ir-scanner found: YES (/usr/bin/x86_64-linux-gnu-g-ir-scanner)
Dependency gobject-introspection-1.0 found: YES 1.80.1 (cached)
Program /usr/bin/x86_64-linux-gnu-g-ir-compiler found: YES (/usr/bin/x86_64-linux-gnu-g-ir-compiler)
src/meson.build:1023: DEPRECATION: Project uses feature that was always broken, and is now deprecated since '1.3.0': str.format: Value other than strings, integers, bools, options, dictionaries and lists thereof..
src/meson.build:1028: DEPRECATION: Project uses feature that was always broken, and is now deprecated since '1.3.0': str.format: Value other than strings, integers, bools, options, dictionaries and lists thereof..
Program check-c-linkage-decls.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-c-linkage-decls.py)
Program check-externs.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-externs.py)
Program check-header-guards.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-header-guards.py)
Program check-includes.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-includes.py)
Program check-static-inits.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-static-inits.py)
Program check-symbols.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-symbols.py)
Program check-libstdc++.py found: YES (/home/raphy/Downloads/harfbuzz/src/check-libstdc++.py)
Program run-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/shape/run-tests.py)
Program run-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/subset/run-tests.py)
Program run-repack-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/subset/run-repack-tests.py)
Program run-shape-fuzzer-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/fuzzing/run-shape-fuzzer-tests.py)
Program run-subset-fuzzer-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/fuzzing/run-subset-fuzzer-tests.py)
Program run-draw-fuzzer-tests.py found: YES (/home/raphy/Downloads/harfbuzz/test/fuzzing/run-draw-fuzzer-tests.py)
Program gtkdoc-scan found: YES (/usr/bin/gtkdoc-scan)
Configuring version.xml using configuration
Program gtkdoc-scan found: YES (/usr/bin/gtkdoc-scan)
Program gtkdoc-scangobj found: YES (/usr/bin/gtkdoc-scangobj)
Program gtkdoc-mkdb found: YES (/usr/bin/gtkdoc-mkdb)
Program gtkdoc-mkhtml found: YES (/usr/bin/gtkdoc-mkhtml)
Program gtkdoc-fixxref found: YES (/usr/bin/gtkdoc-fixxref)
Configuring config.h using configuration
Build targets in project: 127
WARNING: Project specifies a minimum meson_version '>= 0.55.0' but uses features which were added in newer versions:
 * 1.3.0: {'fs.relative_to'}
NOTICE: Future-deprecated features used:
 * 0.56.0: {'meson.source_root'}
 * 0.64.0: {'copy arg in configure_file'}
WARNING: Broken features used:
 * 1.3.0: {'str.format: Value other than strings, integers, bools, options, dictionaries and lists thereof.'}

harfbuzz 10.0.1

  Directories
    prefix                    : /usr/local
    bindir                    : bin
    libdir                    : lib/x86_64-linux-gnu
    includedir                : include
    datadir                   : share
    cmakepackagedir           : lib/x86_64-linux-gnu/cmake

  Unicode callbacks (you want at least one)
    Builtin                   : YES
    Glib                      : YES
    ICU                       : YES

  Font callbacks (the more the merrier)
    Builtin                   : YES
    FreeType                  : YES

  Dependencies used for command-line utilities
    Cairo                     : YES
    Chafa                     : YES

  Additional shapers
    Graphite2                 : NO
    WebAssembly (experimental): NO

  Platform shapers (not normally needed)
    CoreText                  : NO
    DirectWrite (experimental): NO
    GDI/Uniscribe             : NO

  Other features
    Documentation             : YES
    GObject bindings          : YES
    Cairo integration         : YES
    Introspection             : YES
    Experimental APIs         : NO

  Testing
    Tests                     : YES
    Benchmark                 : NO

Found ninja-1.11.1 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

but with meson compile -C build I get these errors "undefined reference to" :

raphy@raohy:~/Downloads/harfbuzz$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/raphy/Downloads/harfbuzz/build
ninja: Entering directory `/home/raphy/Downloads/harfbuzz/build'
[253/337] Linking target src/libharfbuzz-icu.so.0.61001.0
FAILED: src/libharfbuzz-icu.so.0.61001.0 
c++  -o src/libharfbuzz-icu.so.0.61001.0 src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libharfbuzz-icu.so.0 '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/raphy/Downloads/harfbuzz/build/src src/libharfbuzz.so.0.61001.0 /usr/lib/x86_64-linux-gnu/libicuuc.so /usr/lib/x86_64-linux-gnu/libicudata.so -Wl,--end-group
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_script_to_script':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:80:(.text+0x32): undefined reference to `uscript_getShortName_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_script_from_script':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:103:(.text+0xc1): undefined reference to `uscript_getCode_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_combining_class(hb_unicode_funcs_t*, unsigned int, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:115:(.text+0xfb): undefined reference to `u_getCombiningClass_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_general_category(hb_unicode_funcs_t*, unsigned int, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:123:(.text+0x126): undefined reference to `u_getIntPropertyValue_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_mirroring(hb_unicode_funcs_t*, unsigned int, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:174:(.text+0x270): undefined reference to `u_charMirror_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_script(hb_unicode_funcs_t*, unsigned int, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:183:(.text+0x2b0): undefined reference to `uscript_getScript_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_compose(hb_unicode_funcs_t*, unsigned int, unsigned int, unsigned int*, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:199:(.text+0x328): undefined reference to `unorm2_composePair_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_decompose(hb_unicode_funcs_t*, unsigned int, unsigned int*, unsigned int*, void*)':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:216:(.text+0x3af): undefined reference to `unorm2_getRawDecomposition_72'
/usr/bin/ld: /home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:220:(.text+0x3f1): undefined reference to `u_countChar32_72'
/usr/bin/ld: src/libharfbuzz-icu.so.0.61001.0.p/hb-icu.cc.o: in function `hb_icu_unicode_funcs_lazy_loader_t::create()':
/home/raphy/Downloads/harfbuzz/build/../src/hb-icu.cc:245:(.text._ZN34hb_icu_unicode_funcs_lazy_loader_t6createEv[_ZN34hb_icu_unicode_funcs_lazy_loader_t6createEv]+0x32): undefined reference to `unorm2_getNFCInstance_72'
collect2: error: ld returned 1 exit status
[262/337] Generating src/HarfBuzz-0.0.gir with a custom command (wrapped by meson to set env)
ninja: build stopped: subcommand failed.
raphy@raohy:~/Downloads/harfbuzz$ 

In /usr/local/include/unicode :

raphy@raohy:/usr/local/include/unicode$ ls
alphaindex.h            currpinf.h        fmtable.h          meson-logs                          platform.h                   smpdtfmt.h           tztrans.h            ucptrie.h              ulocbuilder.h            uobject.h                 utext.h
appendable.h            currunit.h        format.h           meson-private                       plurfmt.h                    sortkey.h            ubidi.h              ucsdet.h               ulocdata.h               upluralrules.h            utf16.h
basictz.h               datefmt.h         formattednumber.h  meson-uninstalled                   plurrule.h                   src                  ubiditransform.h     ucurr.h                uloc.h                   uregex.h                  utf32.h
brkiter.h               dbbi.h            formattedvalue.h   messageformat2_arguments.h          ptypes.h                     std_string.h         ubrk.h               udata.h                umachine.h               uregion.h                 utf8.h
build.ninja             dcfmtsym.h        fpositer.h         messageformat2_data_model.h         putil.h                      strenum.h            ucal.h               udateintervalformat.h  umisc.h                  ureldatefmt.h             utf.h
bytestream.h            decimfmt.h        gender.h           messageformat2_data_model_names.h   rbbi.h                       stringoptions.h      ucasemap.h           udat.h                 umsg.h                   urename.h                 utf_old.h
bytestriebuilder.h      displayoptions.h  gregocal.h         messageformat2_formattable.h        rbnf.h                       stringpiece.h        ucat.h               udatpg.h               umutablecptrie.h         urep.h                    util
bytestrie.h             docmain.h         icudataver.h       messageformat2_function_registry.h  rbtz.h                       stringtriebuilder.h  uchar.h              udisplaycontext.h      unifilt.h                ures.h                    utmscale.h
calendar.h              docs              icuplug.h          messageformat2.h                    regex.h                      stsearch.h           ucharstriebuilder.h  udisplayoptions.h      unifunct.h               uscript.h                 utrace.h
caniter.h               dtfmtsym.h        idna.h             messagepattern.h                    region.h                     symtable.h           ucharstrie.h         uenum.h                unimatch.h               usearch.h                 utrans.h
casemap.h               dtintrv.h         listformatter.h    msgfmt.h                            reldatefmt.h                 tblcoll.h            uchriter.h           ufieldpositer.h        unirepl.h                uset.h                    utypes.h
char16ptr.h             dtitvfmt.h        localebuilder.h    normalizer2.h                       rep.h                        test                 uclean.h             uformattable.h         uniset.h                 usetiter.h                uvernum.h
chariter.h              dtitvinf.h        localematcher.h    normlzr.h                           resbund.h                    timezone.h           ucnv_cb.h            uformattednumber.h     unistr.h                 ushape.h                  uversion.h
choicfmt.h              dtptngen.h        localpointer.h     nounit.h                            schriter.h                   tmunit.h             ucnv_err.h           uformattedvalue.h      unorm2.h                 usimplenumberformatter.h  vtzone.h
coleitr.h               dtrule.h          locdspnm.h         numberformatter.h                   scientificnumberformatter.h  tmutamt.h            ucnv.h               ugender.h              unorm.h                  uspoof.h
coll.h                  edits.h           locid.h            numberrangeformatter.h              search.h                     tmutfmt.h            ucnvsel.h            uidna.h                unumberformatter.h       usprep.h
compactdecimalformat.h  enumset.h         measfmt.h          numfmt.h                            selfmt.h                     translit.h           ucoleitr.h           uiter.h                unumberoptions.h         ustdio.h
compile_commands.json   errorcode.h       measunit.h         numsys.h                            simpleformatter.h            tzfmt.h              ucol.h               uldnames.h             unumberrangeformatter.h  ustream.h
config.h                fieldpos.h        measure.h          parseerr.h                          simplenumberformatter.h      tznames.h            uconfig.h            ulistformatter.h       unum.h                   ustring.h
curramt.h               filteredbrk.h     meson-info         parsepos.h                          simpletz.h                   tzrule.h             ucpmap.h             ulocale.h              unumsys.h                ustringtrie.h

I installed also the Ubuntu 24.04 repo's libicu but the problem persists:

raphy@raohy:~$ sudo apt-cache search libicu
[sudo] password for raphy: 
icu-devtools - Development utilities for International Components for Unicode
libicu-dev - Development files for International Components for Unicode
libicu74 - International Components for Unicode
libicu4j-4.4-java - Library for Unicode support and internationalization
libicu4j-java - Library for Unicode support and internationalization
libicu70 - International Components for Unicode

raphy@raohy:~$ sudo apt-get install libicu-dev  libicu7
libicu70  libicu74  
raphy@raohy:~$ sudo apt-get install libicu-dev  libicu74  libicu70
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libicu-dev is already the newest version (74.2-1ubuntu3.1).
libicu74 is already the newest version (74.2-1ubuntu3.1).
libicu70 is already the newest version (70.1-2).

What am I missing or/and doing wrong? How to make it work?

OS: Ubuntu 24.04

Upvotes: 0

Views: 101

Answers (0)

Related Questions