Skip to content

Compilation with clang for 32bit fails check-defs.sh and check-symbols.sh tests #510

@moxian

Description

@moxian

Steps to reproduce:

$ ./configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu  CC='clang -m32' CXX='clang++ -m32' && make && make check
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes

<..snip...>

make  check-TESTS
make[4]: Entering directory '/home/moxian/work/harfbuzz/build/src'
make[5]: Entering directory '/home/moxian/work/harfbuzz/build/src'
PASS: check-c-linkage-decls.sh
FAIL: check-defs.sh
PASS: check-header-guards.sh
PASS: check-includes.sh
PASS: check-libstdc++.sh
PASS: check-static-inits.sh
FAIL: check-symbols.sh
PASS: test-ot-tag
============================================================================
Testsuite summary for HarfBuzz 1.4.6
============================================================================
# TOTAL: 8
# PASS:  6
# SKIP:  0
# XFAIL: 0
# FAIL:  2
# XPASS: 0
# ERROR: 0
============================================================================
See src/test-suite.log
Please report to https://github.com/behdad/harfbuzz/issues/new
============================================================================

The contents of src/check-symbols.sh.log (src/check-defs.sh.log is very similar):

Checking that we are not exposing internal symbols
Processing .libs/libharfbuzz.so

<...~35800 blank lines ommited ...>

Ouch, internal symbols exposed
FAIL check-symbols.sh (exit status: 1)

The reason for that is that nm src/.libs/libharfbuzz.so outputs the following:

00000000 N 
0000002d N 
0000004b N 
00000070 N 
00019e85 N 
0000007d N 
<.. ~38000 of similar lines skipped...>
0006139a N 
0000dc71 N 
         U __assert_fail@@GLIBC_2.0
00052730 t atexit
0008663e r bracket_pairs
00094310 B __bss_start
         U calloc@@GLIBC_2.0
<...the rest of "normal" output...>
00074030 r _ZZL14thai_pua_shapej13thai_action_tP9hb_font_tE11SD_mappings
000740e4 r _ZZL14thai_pua_shapej13thai_action_tP9hb_font_tE11SL_mappings
0007409c r _ZZL14thai_pua_shapej13thai_action_tP9hb_font_tE12SDL_mappings

I think empty lines should not be considered to be "exposing internal symbols", and should be filtered for the purpose of the test (e.g. by adding | grep -v '^$' to the EXPORTED_SYMBOLS definition).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions