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

ICU-22610 Use Requires.private and Libs.private #2949

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on May 8, 2024

  1. ICU-22610 Use Requires.private and Libs.private

    To prevent overlinking when publishing shared libraries,
    specify internal dependencies using Requires.private and
    Libs.private.
    
    Use Libs.private in icu-uc.pc for libicudata.so, and
    Requires.private in icu-i18n.pc, icu-io.pc, and icu-lx.pc,
    so that ICU internal dependencies will not be bound
    into clients.
    
    The resulting *.pc files will produce the following
    output for icu-i18n and icu-lx, provided pkgconf has
    commit 78d53ea0 (2.2.0 or later) which de-duplicates
    multiple -L options:
    
        commit 78d53ea012dfbaf397bf8e6907efac5b51abac56
        Author: Kai Pastor <[email protected]>
        Date:   Fri Feb 23 15:18:08 2024 +0100
    
            Revise serials, traversal, flattening
    
      ./configure --enable-shared ...
    
        #
        # icu-i18n
        #
    
        % pkgconf --libs  icu-i18n
        -L/opt/local/lib -licui18n
    
        % pkgconf --libs --static icu-i18n
        -L/opt/local/lib -licui18n -licuuc -licudata -lpthread -lm
    
        #
        # icu-lx
        #
    
        % pkgconf  --libs icu-lx
        -L/opt/local/lib -liculx
    
        % pkgconf  --libs --static icu-lx
        -L/opt/local/lib -liculx -L/usr/lib/x86_64-linux-gnu -licu-le-hb -lharfbuzz -lm -licuuc -licudata -lpthread -lm
    
      ./configure --disable-shared --enable-static ...
    
        #
        # icu-i18n
        #
    
        % pkgconf --libs  icu-i18n
        -L/opt/local/lib -licui18n -licuuc -licudata -lpthread -lm
    
        % pkgconf  --libs --static icu-i18n
        -L/opt/local/lib -licui18n -licuuc -licudata -lpthread -lm
    
        #
        # icu-lx
        #
    
        % pkgconf  --libs icu-lx
        -L/opt/local/lib -liculx -L/usr/lib/x86_64-linux-gnu -licu-le-hb
    
        % pkgconf  --libs --static icu-lx
        -L/opt/local/lib -liculx -L/usr/lib/x86_64-linux-gnu -licu-le-hb -lharfbuzz -licuuc -licudata -lpthread -lm
    earlchew-aws authored and Earl Chew committed May 8, 2024
    Configuration menu
    Copy the full SHA
    5ece2c7 View commit details
    Browse the repository at this point in the history