How is glibc used?
Michael Felt
aixtools at gmail.com
Wed Aug 24 17:33:05 UTC 2016
I mention this because make check is reporting nearly all failures, while
pkg-config-0-29.1 does seem to work?
Q. Why concerned about glibc?
A. Because I am not using gcc as a compiler, and glibc demands
"constructor" support, which my compiler does not have.
Q. Why not build pkg-config with gcc, and not worry about it?
A. As you know, the values stored for a project depend on the compiler
used. And GCC compiler flags are not universal.
In other words, if I work with GCC I need a different pkg-config (at least,
the one I compiled with gcc never worked
with my standard compiler)
Q. How did you build pkg-config?
A. Compiler is xlc, platform is AIX 5.3 TL7. Modification to internal glibc:
change #error macro in ../src/pkg-config-0.29.1/glib/glib/glib-init.c
to:
+283 #else
+284 # warning Your platform/compiler is missing constructor support
+285 #endif
so that make continues.
My expectation was one or more undefined symbols, but none occurred.
Q. Why am I asking this?
A. Again, no undefined symbols, so whatever magic glib-init.c is suppossed
to provide, seems to be unneeded, AND,
make check fails in the end with:
Making check in check
make check-TESTS
failed=0; all=0; xfail=0; xpass=0; skip=0;
srcdir=../../src/pkg-config-0.29.1/check; export srcdir; list='
check-cflags check-libs check-mixed-flags check-non-l-flags
check-define-variable check-libs-private check-requires-private
check-circular-requires check-includedir check-conflicts check-missing
check-special-flags check-sort-order check-duplicate-flags
check-whitespace check-cmd-options check-version check-requires-version
check-print-options check-path check-sysroot check-uninstalled check-debug
check-gtk check-tilde check-relocatable check-variable-override
check-variables '; { mgn= red= grn= lgn= blu= brg= std=;
am__color_tests=no; if test "X" = Xno; then am__color_tests=no; elif
test "X" = Xalways; then am__color_tests=yes; elif test "X$TERM" != Xdumb
&& { test -t 1; } 2>/dev/null; then am__color_tests=yes; fi; if test
$am__color_tests = yes; then red=''; grn=''; lgn=''; blu=''; mgn='';
brg=''; std=''; fi; }; if test -n "$list"; then for tst in $list; do
if test -f ./$tst; then dir=./; elif test -f $tst; then dir=; else
dir="../../src/pkg-config-0.29.1/check/"; fi; if
PKG_CONFIG='../pkg-config' /usr/bin/ksh ${dir}$tst ; then all=`expr $all +
1`; case " " in *[\ \ ]$tst[\ \ ]*) xpass=`expr $xpass + 1`;
failed=`expr $failed + 1`; col=$red; res=XPASS; ;; *) col=$grn;
res=PASS; ;; esac; elif test $? -ne 77; then all=`expr $all + 1`; case
" " in *[\ \ ]$tst[\ \ ]*) xfail=`expr $xfail + 1`; col=$lgn;
res=XFAIL; ;; *) failed=`expr $failed + 1`; col=$red; res=FAIL; ;;
esac; else skip=`expr $skip + 1`; col=$blu; res=SKIP; fi; echo
"${col}$res${std}: $tst"; done; if test "$all" -eq 1; then
tests="test"; All=""; else tests="tests"; All="All "; fi; if test
"$failed" -eq 0; then if test "$xfail" -eq 0; then banner="$All$all
$tests passed"; else if test "$xfail" -eq 1; then failures=failure; else
failures=failures; fi; banner="$All$all $tests behaved as expected ($xfail
expected $failures)"; fi; else if test "$xpass" -eq 0; then
banner="$failed of $all $tests failed"; else if test "$xpass" -eq 1; then
passes=pass; else passes=passes; fi; banner="$failed of $all $tests did
not behave as expected ($xpass unexpected $passes)"; fi; fi;
dashes="$banner"; skipped=""; if test "$skip" -ne 0; then if test
"$skip" -eq 1; then skipped="($skip test was not run)"; else
skipped="($skip tests were not run)"; fi; test `echo "$skipped" | wc -c`
-le `echo "$banner" | wc -c` || dashes="$skipped"; fi; report=""; if
test "$failed" -ne 0 && test -n "
https://bugs.freedesktop.org/enter_bug.cgi?product=pkg-config"; then
report="Please report to
https://bugs.freedesktop.org/enter_bug.cgi?product=pkg-config"; test `echo
"$report" | wc -c` -le `echo "$banner" | wc -c` || dashes="$report"; fi;
dashes=`echo "$dashes" | sed s/./=/g`; if test "$failed" -eq 0; then
col="$grn"; else col="$red"; fi; echo "${col}$dashes${std}"; echo
"${col}$banner${std}"; test -z "$skipped" || echo "${col}$skipped${std}";
test -z "$report" || echo "${col}$report${std}"; echo
"${col}$dashes${std}"; test "$failed" -eq 0; else :; fi
FAIL: check-cflags
FAIL: check-libs
FAIL: check-mixed-flags
FAIL: check-non-l-flags
FAIL: check-define-variable
FAIL: check-libs-private
FAIL: check-requires-private
FAIL: check-circular-requires
FAIL: check-includedir
FAIL: check-conflicts
FAIL: check-missing
FAIL: check-special-flags
FAIL: check-sort-order
FAIL: check-duplicate-flags
FAIL: check-whitespace
FAIL: check-cmd-options
FAIL: check-version
FAIL: check-requires-version
FAIL: check-print-options
FAIL: check-path
FAIL: check-sysroot
FAIL: check-uninstalled
FAIL: check-debug
FAIL: check-gtk
FAIL: check-tilde
FAIL: check-relocatable
FAIL: check-variable-override
FAIL: check-variables
==============================================================================
28 of 28 tests failed
Please report to
https://bugs.freedesktop.org/enter_bug.cgi?product=pkg-config
==============================================================================
I am not left with a lot of confidence that "all is well".
Maybe you can see that the problem is because my shell is not bash, and my
make is not gmake.
Q. What do I offer?
A. My time, to work out what may be needed to get make check to work
without gcc, gmake and/or bash - or establish that one or more GNUisms are
a must.
Thanks for your time!
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pkg-config/attachments/20160824/6dff2b83/attachment.html>
More information about the pkg-config
mailing list