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