GNOME Bugzilla – Bug 710084
glib-init.c can't be build with xlc/vac (Your platform/compiler is missing constructor support)
Last modified: 2018-05-24 15:44:33 UTC
As part of satisfying requirements for another package I need to compile glib on AIX. On AIX 5.3 TL7 and 5.3 TL12 and using the IBM compiler: IBM XL C/C++ for AIX, V11.1 (5724-X13) Version: 11.01.0000.0013 I am unable to compile glib-init.c. I get the following message: CC libglib_2_0_la-glib-init.lo "glib-init.c", line 272.3: 1506-205 (S) #error Your platform/compiler is missing constructor support This is very similar to bug 671082 (can't build with suncc) https://bugzilla.gnome.org/show_bug.cgi?id=671082 Since the bug above is still open, and the suggested fix is not in the versions I tested I am assuming something else is desired. I will test, as soon as I have time, proposed changes/patches. Please note: I have tried versions 2.34.0, 2.36.4, and 2.38.0 Additional note: also fails with gcc, but due to -Werror=format argument. Submitting an additional bug-report for that.
if the IBM C compiler does not support constructor/destructor attributes or pragma then we don't really support the IBM C compiler. if the IBM C compiler does support constructor/destructor attributes or pragma, then we need to be able to detect which one, and add the relevant details to gconstructor.h, similarly to what we do for the other compilers. Michael, could you please find out what kind of support is available?
If I understood the problem better, I would (have) provided more info. As my search using google did not find anything - either noone is using non-gcc compilers (much) and/or "they" now what extra flags is needed to get this compiler specific behavior. Is this a C89 construct? From https://wiki.gnome.org/GTK+/BestPractices I read: Rationale: we expect GLib and GTK+ to be buildable on various compilers with only C89 support. I am guessing it is not. Nor do I care - as long as there is some kind of solution. So, while I am very willing (not happy) to investigate further aome assistence on where to look, and when - would be helpful. e.g., what is this "ability" you are looking for? Is it a standard, or is it something unique to GNU software and/or gcc?
If you just want to run one app, you could probably hack up the code to require invocation of g_type_init() again. But basically to run modern GLib your toolchain needs constructors, which are special sections on ELF objects that the dynamic linker will invoke when they're loaded, before even the application main().
(In reply to comment #2) > If I understood the problem better, I would (have) provided more info. I apologize. GLib (and other libraries in the GNOME stack) use the compiler support for constructors and destructors; see for instance the 'constructor' and 'destructor' annotation for GCC: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html in short: """ The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, the destructor attribute causes the function to be called automatically after main () completes or exit () is called. Functions with these attributes are useful for initializing data that is used implicitly during the execution of the program. """ GLib uses constructors for initializing the type system and other state without an explicit init function; and the destructor to perform clean up, especially in debugging builds. all major C compilers support this feature (GCC, Clang, MSVC) as it's defined to be in the C++ standard. different compilers support it differently: some use annotations for functions, some use a compiler #pragma; GLib has, in the gconstructor.h file (here: http://git.gnome.org/browse/glib/tree/glib/gconstructor.h) the pre-processor "magic" to detect this functionality. > Is this a C89 construct? it's not standardised, hence the compile-time detection. > So, while I am very willing (not happy) to investigate further aome assistence > on where to look, and when - would be helpful. you can check in the IBM C compiler if there's support for calling functions before and after the main() entry point, or on dynamic module load/unload.
http://pic.dhe.ibm.com/infocenter/comphelp/v121v141/index.jsp?topic=%2Fcom.ibm.xlc121.aix.doc%2Fcompiler_ref%2Fpragma_init.html So possibly just changing the "#elif defined(__SUNPRO_C)" case to include XLC would fix it. (Although xlc apparently also supports _Pragma.)
I was replying to the mailing list, which is no the way to proceed it seems... Anyway, last week :) I replied with this... From: Michael Felt <mamfelt@gmail.com> To: Mail Delivery Subsystem <mailer-daemon@googlemail.com> Content-Type: multipart/alternative; boundary=001a11c233ea4a990304e93a5023 The last week I have been trying several versions, each has it's own issues. Sadly I also saw this (although it did point me at the glib-2.34.3 (I had found a 2.34.0 version first)) ==== From: http://www.perzl.org/aix/index.php?n=Main.Glib2 *Homepage:* http://www.gtk.org *Version:* 2.36.3-1 Due to many reported problems with glib2-2.36.X I have gone back to using version 2.34.3-1 as the latest version and would kindly advise you to do the same. The major difference between glib2 version 2.34 and 2.36 is that the IBM XL C/C++ compiler can't compile glib2-2.36 anymore and therefore I had to switch to the GNU compiler. Apparently, both compilers are not generating 100%-compatible code :-( === I doubt it is the compiler per-se as my experience with mixed compilers is that the libraries have some gcc dependencies coded into them. There is never a perfect world. All I can hope for is that this project will reconsider supporting UNIX standards. So sad to see such a long standing "standard" ignore the rest of us. That is what it feels like - so if I am wrong, please accept my apology. All I really want is to be able to package something that uses a subset of glib. Good day to you all. === The issue is that, for whatever reason - gcc and "other built with vac/xlc" libraries are not working together well. Anyway, now that I know I need to "reply" here, and not in the mailing list, I shall repeat my attempts to build/package the new glib and update here.
p.s. In trying glib-2.34.3, after adding"|| defined(_AIX) - which should probably be something else to the #elif defined(__SUNPRO_C) make proceeded nicely - until it came with the following error (looks like a hard coded dependency) === Making all in tests make[4]: Entering directory `/data/prj/gnu/gtk+/glib-2.34.3/glib/tests' CCLD private cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory === can you help me understand why config/autoconfig/or whatever is asking for 'mcrt0.o' AIX has something else, i.e. crt0.o - not mcrt0.o: root@x093:[/data/prj/gnu/gtk+/glib-2.34.3/glib/tests]lslpp -w | grep rt0.o /usr/ccs/lib/crt0.o bos.rte.libc File /usr/lib/crt0.o bos.rte.libc Symlink root@x093:[/data/prj/gnu/gtk+/glib-2.34.3/glib/tests] more detail... root@x093:[/data/prj/gnu/gtk+/glib-2.34.3/glib/tests]V=1 make /bin/sh ../../libtool --tag=CC --mode=link cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o private private.o ../../glib/libglib-2.0.la -lintl libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o .libs/private private.o -L../../glib/.libs -lglib-2.0 -liconv -lintl -pthread -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory make: *** [private] Error 255 ==== Anyway, I was wondering if there is a way for me to run buildconf on the 2.34.3 tree as this seems to be the closest to ready for AIX and xlc compiler. Thanks for assistance.
(In reply to comment #7) > /bin/sh ../../libtool --tag=CC --mode=link cc -I/opt/aixtools/include -O2 > -qlanglvl=extc99 -pthread -o private private.o ../../glib/libglib-2.0.la > -lintl > libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o > .libs/private private.o -L../../glib/.libs -lglib-2.0 -liconv -lintl -pthread > -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib > cc: 1501-210 (W) command option t contains an incorrect subargument > cc: 1501-210 (W) command option t contains an incorrect subargument It appears to be interpreting "-pthread" as meaning "-p -t -h -r -e -a -d", which just raises the question of how configure ended up choosing to use that flag if the compiler doesn't recognize it... can you attach your config.log ?
Created attachment 258292 [details] confog.log for AIX 5.3, xlc v11 per request.
p.s., i would have expected -pthread to be -lpthread
Created attachment 258299 [details] config.log from glib-2.32.4 on AIX 5.3 and XLC v11 FYI: just tried packaging version 2.32.4 1) same issue with gconstructor.h (needs defined(_AIX)) 2) same link error, etc. with -pthread, i.e. Making all in tests /bin/sh ../../libtool --tag=CC --mode=link cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o private private.o ../../glib/libglib-2.0.la -lintl libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o .libs/private private.o -L../../glib/.libs -lglib-2.0 -liconv -lintl -pthread -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory make: 1254-004 The error code from the last command is 255.
Continuing back in time: v2.30.3 has issues with redefinitions of constants: make[4]: Entering directory `/data/prj/gnu/glib/glib-2.30.3/gio/libasyncns' source='asyncns.c' object='asyncns.lo' libtool=yes \ DEPDIR=.deps depmode=aix /bin/sh ../../depcomp \ /bin/sh ../../libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/opt/include -DG_DISABLE_SINGLE_INCLUDES -D_THREAD_SAFE -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c -o asyncns.lo asyncns.c libtool: compile: cc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/opt/include -DG_DISABLE_SINGLE_INCLUDES -D_THREAD_SAFE -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c -M asyncns.c -DPIC -o .libs/asyncns.o "/usr/include/arpa/nameser_compat.h", line 210.9: 1506-046 (S) Syntax error. "/usr/include/arpa/onameser_compat.h", line 50.9: 1506-236 (W) Macro name PACKETSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 50.9: 1506-358 (I) "PACKETSZ" is defined on line 49 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 51.9: 1506-236 (W) Macro name MAXDNAME has been redefined. "/usr/include/arpa/onameser_compat.h", line 51.9: 1506-358 (I) "MAXDNAME" is defined on line 50 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 52.9: 1506-236 (W) Macro name MAXCDNAME has been redefined. "/usr/include/arpa/onameser_compat.h", line 52.9: 1506-358 (I) "MAXCDNAME" is defined on line 51 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 53.9: 1506-236 (W) Macro name MAXLABEL has been redefined. "/usr/include/arpa/onameser_compat.h", line 53.9: 1506-358 (I) "MAXLABEL" is defined on line 52 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 54.9: 1506-236 (W) Macro name HFIXEDSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 54.9: 1506-358 (I) "HFIXEDSZ" is defined on line 53 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 55.9: 1506-236 (W) Macro name QFIXEDSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 55.9: 1506-358 (I) "QFIXEDSZ" is defined on line 54 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 56.9: 1506-236 (W) Macro name RRFIXEDSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 56.9: 1506-358 (I) "RRFIXEDSZ" is defined on line 55 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 57.9: 1506-236 (W) Macro name INT32SZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 57.9: 1506-358 (I) "INT32SZ" is defined on line 56 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 58.9: 1506-236 (W) Macro name INT16SZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 58.9: 1506-358 (I) "INT16SZ" is defined on line 57 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 59.9: 1506-236 (W) Macro name INADDRSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 59.9: 1506-358 (I) "INADDRSZ" is defined on line 58 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 60.9: 1506-236 (W) Macro name IN6ADDRSZ has been redefined. "/usr/include/arpa/onameser_compat.h", line 60.9: 1506-358 (I) "IN6ADDRSZ" is defined on line 59 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 65.9: 1506-236 (W) Macro name NAMESERVER_PORT has been redefined. "/usr/include/arpa/onameser_compat.h", line 65.9: 1506-358 (I) "NAMESERVER_PORT" is defined on line 61 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 70.9: 1506-236 (W) Macro name QUERY has been redefined. "/usr/include/arpa/onameser_compat.h", line 70.9: 1506-358 (I) "QUERY" is defined on line 76 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 71.9: 1506-236 (W) Macro name IQUERY has been redefined. "/usr/include/arpa/onameser_compat.h", line 71.9: 1506-358 (I) "IQUERY" is defined on line 77 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 72.9: 1506-236 (W) Macro name STATUS has been redefined. "/usr/include/arpa/onameser_compat.h", line 72.9: 1506-358 (I) "STATUS" is defined on line 78 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 74.9: 1506-236 (W) Macro name NS_NOTIFY_OP has been redefined. "/usr/include/arpa/onameser_compat.h", line 74.9: 1506-358 (I) "NS_NOTIFY_OP" is defined on line 79 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 114.9: 1506-236 (W) Macro name NOERROR has been redefined. "/usr/include/arpa/onameser_compat.h", line 114.9: 1506-358 (I) "NOERROR" is defined on line 82 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 115.9: 1506-236 (W) Macro name FORMERR has been redefined. "/usr/include/arpa/onameser_compat.h", line 115.9: 1506-358 (I) "FORMERR" is defined on line 83 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 116.9: 1506-236 (W) Macro name SERVFAIL has been redefined. "/usr/include/arpa/onameser_compat.h", line 116.9: 1506-358 (I) "SERVFAIL" is defined on line 84 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 117.9: 1506-236 (W) Macro name NXDOMAIN has been redefined. "/usr/include/arpa/onameser_compat.h", line 117.9: 1506-358 (I) "NXDOMAIN" is defined on line 85 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 118.9: 1506-236 (W) Macro name NOTIMP has been redefined. "/usr/include/arpa/onameser_compat.h", line 118.9: 1506-358 (I) "NOTIMP" is defined on line 86 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 119.9: 1506-236 (W) Macro name REFUSED has been redefined. "/usr/include/arpa/onameser_compat.h", line 119.9: 1506-358 (I) "REFUSED" is defined on line 87 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 141.9: 1506-236 (W) Macro name T_A has been redefined. "/usr/include/arpa/onameser_compat.h", line 141.9: 1506-358 (I) "T_A" is defined on line 97 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 142.9: 1506-236 (W) Macro name T_NS has been redefined. "/usr/include/arpa/onameser_compat.h", line 142.9: 1506-358 (I) "T_NS" is defined on line 98 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 143.9: 1506-236 (W) Macro name T_MD has been redefined. "/usr/include/arpa/onameser_compat.h", line 143.9: 1506-358 (I) "T_MD" is defined on line 99 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 144.9: 1506-236 (W) Macro name T_MF has been redefined. "/usr/include/arpa/onameser_compat.h", line 144.9: 1506-358 (I) "T_MF" is defined on line 100 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 145.9: 1506-236 (W) Macro name T_CNAME has been redefined. "/usr/include/arpa/onameser_compat.h", line 145.9: 1506-358 (I) "T_CNAME" is defined on line 101 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 146.9: 1506-236 (W) Macro name T_SOA has been redefined. "/usr/include/arpa/onameser_compat.h", line 146.9: 1506-358 (I) "T_SOA" is defined on line 102 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 147.9: 1506-236 (W) Macro name T_MB has been redefined. "/usr/include/arpa/onameser_compat.h", line 147.9: 1506-358 (I) "T_MB" is defined on line 103 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 148.9: 1506-236 (W) Macro name T_MG has been redefined. "/usr/include/arpa/onameser_compat.h", line 148.9: 1506-358 (I) "T_MG" is defined on line 104 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 149.9: 1506-236 (W) Macro name T_MR has been redefined. "/usr/include/arpa/onameser_compat.h", line 149.9: 1506-358 (I) "T_MR" is defined on line 105 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 150.9: 1506-236 (W) Macro name T_NULL has been redefined. "/usr/include/arpa/onameser_compat.h", line 150.9: 1506-358 (I) "T_NULL" is defined on line 106 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 151.9: 1506-236 (W) Macro name T_WKS has been redefined. "/usr/include/arpa/onameser_compat.h", line 151.9: 1506-358 (I) "T_WKS" is defined on line 107 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 152.9: 1506-236 (W) Macro name T_PTR has been redefined. "/usr/include/arpa/onameser_compat.h", line 152.9: 1506-358 (I) "T_PTR" is defined on line 108 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 153.9: 1506-236 (W) Macro name T_HINFO has been redefined. "/usr/include/arpa/onameser_compat.h", line 153.9: 1506-358 (I) "T_HINFO" is defined on line 109 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 154.9: 1506-236 (W) Macro name T_MINFO has been redefined. "/usr/include/arpa/onameser_compat.h", line 154.9: 1506-358 (I) "T_MINFO" is defined on line 110 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 155.9: 1506-236 (W) Macro name T_MX has been redefined. "/usr/include/arpa/onameser_compat.h", line 155.9: 1506-358 (I) "T_MX" is defined on line 111 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 156.9: 1506-236 (W) Macro name T_TXT has been redefined. "/usr/include/arpa/onameser_compat.h", line 156.9: 1506-358 (I) "T_TXT" is defined on line 112 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 157.9: 1506-236 (W) Macro name T_RP has been redefined. "/usr/include/arpa/onameser_compat.h", line 157.9: 1506-358 (I) "T_RP" is defined on line 113 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 158.9: 1506-236 (W) Macro name T_AFSDB has been redefined. "/usr/include/arpa/onameser_compat.h", line 158.9: 1506-358 (I) "T_AFSDB" is defined on line 114 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 159.9: 1506-236 (W) Macro name T_X25 has been redefined. "/usr/include/arpa/onameser_compat.h", line 159.9: 1506-358 (I) "T_X25" is defined on line 115 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 160.9: 1506-236 (W) Macro name T_ISDN has been redefined. "/usr/include/arpa/onameser_compat.h", line 160.9: 1506-358 (I) "T_ISDN" is defined on line 116 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 161.9: 1506-236 (W) Macro name T_RT has been redefined. "/usr/include/arpa/onameser_compat.h", line 161.9: 1506-358 (I) "T_RT" is defined on line 117 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 162.9: 1506-236 (W) Macro name T_NSAP has been redefined. "/usr/include/arpa/onameser_compat.h", line 162.9: 1506-358 (I) "T_NSAP" is defined on line 118 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 163.9: 1506-236 (W) Macro name T_NSAP_PTR has been redefined. "/usr/include/arpa/onameser_compat.h", line 163.9: 1506-358 (I) "T_NSAP_PTR" is defined on line 119 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 164.9: 1506-236 (W) Macro name T_SIG has been redefined. "/usr/include/arpa/onameser_compat.h", line 164.9: 1506-358 (I) "T_SIG" is defined on line 120 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 165.9: 1506-236 (W) Macro name T_KEY has been redefined. "/usr/include/arpa/onameser_compat.h", line 165.9: 1506-358 (I) "T_KEY" is defined on line 121 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 166.9: 1506-236 (W) Macro name T_PX has been redefined. "/usr/include/arpa/onameser_compat.h", line 166.9: 1506-358 (I) "T_PX" is defined on line 122 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 167.9: 1506-236 (W) Macro name T_GPOS has been redefined. "/usr/include/arpa/onameser_compat.h", line 167.9: 1506-358 (I) "T_GPOS" is defined on line 123 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 168.9: 1506-236 (W) Macro name T_AAAA has been redefined. "/usr/include/arpa/onameser_compat.h", line 168.9: 1506-358 (I) "T_AAAA" is defined on line 124 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 169.9: 1506-236 (W) Macro name T_LOC has been redefined. "/usr/include/arpa/onameser_compat.h", line 169.9: 1506-358 (I) "T_LOC" is defined on line 125 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 171.9: 1506-236 (W) Macro name T_UINFO has been redefined. "/usr/include/arpa/onameser_compat.h", line 171.9: 1506-358 (I) "T_UINFO" is defined on line 139 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 172.9: 1506-236 (W) Macro name T_UID has been redefined. "/usr/include/arpa/onameser_compat.h", line 172.9: 1506-358 (I) "T_UID" is defined on line 140 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 173.9: 1506-236 (W) Macro name T_GID has been redefined. "/usr/include/arpa/onameser_compat.h", line 173.9: 1506-358 (I) "T_GID" is defined on line 141 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 174.9: 1506-236 (W) Macro name T_UNSPEC has been redefined. "/usr/include/arpa/onameser_compat.h", line 174.9: 1506-358 (I) "T_UNSPEC" is defined on line 142 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 176.9: 1506-236 (W) Macro name T_AXFR has been redefined. "/usr/include/arpa/onameser_compat.h", line 176.9: 1506-358 (I) "T_AXFR" is defined on line 134 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 177.9: 1506-236 (W) Macro name T_MAILB has been redefined. "/usr/include/arpa/onameser_compat.h", line 177.9: 1506-358 (I) "T_MAILB" is defined on line 135 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 178.9: 1506-236 (W) Macro name T_MAILA has been redefined. "/usr/include/arpa/onameser_compat.h", line 178.9: 1506-358 (I) "T_MAILA" is defined on line 136 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 179.9: 1506-236 (W) Macro name T_ANY has been redefined. "/usr/include/arpa/onameser_compat.h", line 179.9: 1506-358 (I) "T_ANY" is defined on line 137 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 185.9: 1506-236 (W) Macro name C_IN has been redefined. "/usr/include/arpa/onameser_compat.h", line 185.9: 1506-358 (I) "C_IN" is defined on line 163 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 186.9: 1506-236 (W) Macro name C_CHAOS has been redefined. "/usr/include/arpa/onameser_compat.h", line 186.9: 1506-358 (I) "C_CHAOS" is defined on line 164 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 188.9: 1506-236 (W) Macro name C_HS has been redefined. "/usr/include/arpa/onameser_compat.h", line 188.9: 1506-358 (I) "C_HS" is defined on line 165 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 191.9: 1506-236 (W) Macro name C_ANY has been redefined. "/usr/include/arpa/onameser_compat.h", line 191.9: 1506-358 (I) "C_ANY" is defined on line 168 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 265.3: 1506-334 (S) Identifier HEADER has already been defined on line 244 of "/usr/include/arpa/nameser_compat.h". "/usr/include/arpa/onameser_compat.h", line 300.9: 1506-236 (W) Macro name INDIR_MASK has been redefined. "/usr/include/arpa/onameser_compat.h", line 300.9: 1506-358 (I) "INDIR_MASK" is defined on line 60 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 332.9: 1506-236 (W) Macro name GETSHORT has been redefined. "/usr/include/arpa/onameser_compat.h", line 332.9: 1506-358 (I) "GETSHORT" is defined on line 246 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 337.9: 1506-236 (W) Macro name GETLONG has been redefined. "/usr/include/arpa/onameser_compat.h", line 337.9: 1506-358 (I) "GETLONG" is defined on line 247 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 345.9: 1506-236 (W) Macro name PUTSHORT has been redefined. "/usr/include/arpa/onameser_compat.h", line 345.9: 1506-358 (I) "PUTSHORT" is defined on line 248 of /usr/include/arpa/nameser_compat.h. "/usr/include/arpa/onameser_compat.h", line 350.9: 1506-236 (W) Macro name PUTLONG has been redefined. "/usr/include/arpa/onameser_compat.h", line 350.9: 1506-358 (I) "PUTLONG" is defined on line 249 of /usr/include/arpa/nameser_compat.h. "asyncns.c", line 601.35: 1506-232 (I) Divisor for modulus or division operator cannot be zero. "asyncns.c", line 601.35: 1506-232 (I) Divisor for modulus or division operator cannot be zero. make[4]: *** [asyncns.lo] Error 1 make[4]: Leaving directory `/data/prj/gnu/glib/glib-2.30.3/gio/libasyncns' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/data/prj/gnu/glib/glib-2.30.3/gio' make[2]: *** [all] Error 2 make[2]: Leaving directory `/data/prj/gnu/glib/glib-2.30.3/gio' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/data/prj/gnu/glib/glib-2.30.3' make: *** [all] Error 2
Created attachment 258303 [details] /usr/include/arpa/* from AIX 5.3 FYI.
Created attachment 258304 [details] screen output of make -i starting from last error Assuming the include file is resolved in a newer release, I moved back to 2.32.4 and start make -i to catch any outstanding errors - AND - give an impression of compiler/linker warnings.
Created attachment 258305 [details] screen output of make -i after first make -i finished (with V=1) So, the get verbose output of failed commands, run make -i again, with V=1 defined. Hope this helps! Michael
(In reply to comment #7) > root@x093:[/data/prj/gnu/gtk+/glib-2.34.3/glib/tests]V=1 make > /bin/sh ../../libtool --tag=CC --mode=link cc -I/opt/aixtools/include -O2 > -qlanglvl=extc99 -pthread -o private private.o ../../glib/libglib-2.0.la > -lintl The build command in Makefile.in is: $(private_LINK) $(private_OBJECTS) $(private_LDADD) $(LIBS) where: private_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(private_LDFLAGS) $(LDFLAGS) -o $@ private_LDADD = $(LDADD) private_LDFLAGS = @G_THREAD_LIBS@ private_OBJECTS = private.$(OBJEXT) Suggesting that "G_THREAD_LIBS" is "-pthread" here. But according to your config.log, it is not: G_THREAD_LIBS='' So the "-pthread" does not seem to be coming from glib. How exactly are you building this? Build scripts? Environment variables?
7 hours ago - I forgot - do not reply to emails. Short reply is: the only flags i use as environment variables are CFLAGS and sometimes LDFLAGS. All other flags, etc. I do not know they exist. From what I have read/observed variables such as G_***ETC or gconstructor.h, i.e. start with the letter G or g are project related. I do not know enough to do anything on purpose. Which files should I scan for where it might be defined, e.g., in a .h file (I am thinking of gconstructor.h as one place where i added a define to get the build to proceed. many thanks for your question! === I'll work on the details now.
:) Gotta love details! === Details: total 75472 drwxrws--- 12 michael aixtools 4096 Mar 08 2012 glib-2.22.0 drwxrwsr-x 13 michael aixtools 4096 Mar 08 2012 glib-2.30.2 drwxrws--- 13 michael aixtools 4096 Oct 28 14:27 glib-2.30.3 -rw-r--r-- 1 michael aixtools 5642448 Sep 03 2012 glib-2.30.3.tar.xz drwxrws--- 13 michael aixtools 4096 Oct 28 14:59 glib-2.32.4 -rw-r--r-- 1 michael aixtools 6178556 Sep 03 2012 glib-2.32.4.tar.xz drwxr-s--- 13 michael aixtools 4096 Oct 13 14:09 glib-2.34.0 -rw-r--r-- 1 michael aixtools 6368532 Oct 11 16:23 glib-2.34.0.tar.xz drwxrwxr-x 13 michael aixtools 4096 Oct 28 12:57 glib-2.34.3 -rw-r--r-- 1 michael aixtools 6334872 Nov 26 2012 glib-2.34.3.tar.xz drwxrwxr-x 12 michael aixtools 4096 Oct 21 05:07 glib-2.36.4 -rw-r--r-- 1 michael aixtools 6570720 Aug 07 15:53 glib-2.36.4.tar.xz drwxrwxr-x 12 michael aixtools 4096 Sep 23 21:20 glib-2.38.0 -rw-r--r-- 1 michael aixtools 6679660 Oct 13 14:20 glib-2.38.0.tar.xz -rw-r--r-- 1 michael aixtools 806895 Sep 23 22:10 glib-html-2.38.0.tar.gz I have never been successful with building glib - that I can recall. I will need to repeat attempts with glib-2.9.4 (downloaded with date 22-jan-2006) and glib-2.22.0 (download date 15-feb-2010), both as bz2 archives. In those days I only used the default settings in ./configure, so everything went into /usr/local. Now I want everything in /opt and /var and this causes problems for ./configure - actually buildconf results - because autoconf does not follow the $prefix parameter well (in many cases it skips the $prefix and continues to only look for {include|lib|...} in /usr and /usr/local for what it is trying to find. Hence, CFLAGS, CPPFLAGS and LDFLAGS are passed as environment variables. Unfortunately, these flags are not visible in config.log. Do I use a scripted approach. Yes. I started a project last year after having working on a method to standardize an automated build/packaging of httpd. Trying to make a recognizeable wheel I followed a model that had been developed for the Solaris builds that looks to be based on something called "pkginfo". From what I could find that seemed to be the native Solaris installer. For AIX the native installer is installp - although RPM packaging is also accepted/supported. I shall "save you" from other details - simply said, yes - my apporach is scripted and I use environment variables - but only variables mentioned in ./configure everywhere. I have no knowledge of special environment variables special to any particular project/download. Needing too would defeat the goal/purpose of a generic tool. I am also very strict in my build environment. I regularly - restart from scratch - to be sure my success/failures is not dependent on some other project being there. When a dependancy shows up, such as pkg-config for glib, I install it. However, I try to establish if it is more than just missing an include file. Again for glib, gnu gettext is needed - at least to build, because it needs more than just the libintl.a library, but also one of the gettext tools (msgfmt if I recall correctly). How it is suppossed to work (using diffutils-3.3 as example) is: (almost "perfect"!) Script command is started. The file is /tmp/diffutils-3.3.script. root@x093:[/data/prj/gnu]xz -dc diffutils-3.3.tar.xz | tar xf - root@x093:[/data/prj/gnu]cd diff*3.3 root@x093:[/data/prj/gnu/diffutils-3.3]buildaix + CPPFLAGS=-I/opt/include CFLAGS=-I/opt/aixtools/include -O2 -qlanglvl=extc99 ./configure \ --prefix=/opt \ --sysconfdir=/var/diffutils/etc \ --sharedstatedir=/var/diffutils/com \ --localstatedir=/var/diffutils \ --mandir=/usr/share/man \ > build/aix/configure.out + make > build/aix/make.out + make install DESTDIR=/var/tmp/root/diffutils-3.3.0.0 > build/aix/install.out /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ca/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/cs/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/da/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/de/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/el/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/eo/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/es/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/fi/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/fr/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ga/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/gl/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/he/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/hr/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/hu/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/id/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/it/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ja/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/lv/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ms/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/nl/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/pl/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/pt_BR/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ro/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/ru/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/sr/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/sv/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/tr/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/uk/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/vi/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/zh_CN/LC_MESSAGES/diffutils.mo': No such file or directory /bin/sh[6]: @mkdir_p@: not found /opt/bin/install: cannot create regular file `/var/tmp/root/diffutils-3.3.0.0/opt/share/locale/zh_TW/LC_MESSAGES/diffutils.mo': No such file or directory + mkinstallp.ksh /var/tmp/root/diffutils-3.3.0.0 > build/aix/mkinstallp.out ============================== aixtools.diffutils:aixtools.diffutils.man:3.3.0.0::I:T:::::N:diffutils man pages 2013.Oct.29 07.29 CUT::::0:: aixtools.diffutils:aixtools.diffutils.rte:3.3.0.0::I:T:::::N:diffutils 3.3.0.0 2013.Oct.29 07.29 CUT::::0:: aixtools.diffutils:aixtools.diffutils.share:3.3.0.0::I:T:::::N:diffutils share and documentation 2013.Oct.29 07.29 CUT::::0:: ============================== root@x093:[/data/prj/gnu/diffutils-3.3] Script command is complete. The file is /tmp/diffutils-3.3.script. root@x093:[/data/prj/gnu]cd diff*3.3 root@x093:[/data/prj/gnu]cd diff*3.3 root@x093:[/data/prj/gnu/diffutils-3.3]installp -d . all installp: No action was indicated. The -a (apply) flag is being assumed. +-----------------------------------------------------------------------------+ Pre-installation Verification... +-----------------------------------------------------------------------------+ Verifying selections...done Verifying requisites...done Results... SUCCESSES --------- Filesets listed in this section passed pre-installation verification and will be installed. Selected Filesets ----------------- aixtools.diffutils.man 3.3.0.0 # diffutils man pages 2013.Oct... aixtools.diffutils.rte 3.3.0.0 # diffutils 3.3.0.0 2013.Oct.2... aixtools.diffutils.share 3.3.0.0 # diffutils share and document... << End of Success Section >> +-----------------------------------------------------------------------------+ BUILDDATE Verification ... +-----------------------------------------------------------------------------+ Verifying build dates...done FILESET STATISTICS ------------------ 3 Selected to be installed, of which: 3 Passed pre-installation verification ---- 3 Total to be installed +-----------------------------------------------------------------------------+ Installing Software... +-----------------------------------------------------------------------------+ installp: APPLYING software for: aixtools.diffutils.share 3.3.0.0 aixtools.diffutils.rte 3.3.0.0 aixtools.diffutils.man 3.3.0.0 Finished processing all filesets. (Total time: 1 secs). +-----------------------------------------------------------------------------+ Summaries: +-----------------------------------------------------------------------------+ Installation Summary -------------------- Name Level Part Event Result ------------------------------------------------------------------------------- aixtools.diffutils.share 3.3.0.0 USR APPLY SUCCESS aixtools.diffutils.rte 3.3.0.0 USR APPLY SUCCESS aixtools.diffutils.man 3.3.0.0 USR APPLY SUCCESS root@x093:[/data/prj/gnu/diffutils-3.3] root@x093:[/data/prj/gnu/diffutils-3.3]lslpp -f aixtools.diffutils.rte Fileset File ---------------------------------------------------------------------------- Path: /usr/lib/objrepos aixtools.diffutils.rte 3.3.0.0 /opt/bin /usr/lpp/aixtools /opt/bin/diff /usr/lpp /opt/bin/cmp /opt/lib/charset.alias /usr /opt /usr/lpp/aixtools/README.diffutils /opt/lib /opt/bin/diff3 /opt/bin/sdiff /usr/share ==== What follows is the "script" command capture AFTER, unpacking the archive and applying a "patch" to glib/gconstructor.h Note 1: I shall change the "echo" command in the buildaix script to include the double-quote characters for the environment variables (easier to cut/paste when I do not want the stdout redirected to the file build/aix/foo.out) Note 2: I redirect the stdout to keep a focus on the "error" quality messages. diff -ur glib-2.36.4-orig/glib/gconstructor.h glib-2.36.4/glib/gconstructor.h --- glib-2.36.4-orig/glib/gconstructor.h 2013-05-27 17:01:35 +0000 +++ glib-2.36.4/glib/gconstructor.h 2013-10-29 07:16:12 +0000 @@ -62,7 +62,7 @@ static int _func ## _constructor(void) { atexit (_func); return 0; } \ __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; -#elif defined(__SUNPRO_C) +#elif defined(__SUNPRO_C) || defined (_AIX) /* This is not tested, but i believe it should work, based on: * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c === Script command is started. The file is /tmp/glib-2.36.4.script. root@x093:[/data/prj/gnu/glib/glib-2.36.4]buildaix + CPPFLAGS=-I/opt/include CFLAGS=-I/opt/aixtools/include -O2 -qlanglvl=extc99 ./configure \ --prefix=/opt \ --sysconfdir=/var/glib/etc \ --sharedstatedir=/var/glib/com \ --localstatedir=/var/glib \ --mandir=/usr/share/man \ > build/aix/configure.out configure: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: zlib.h: proceeding with the compiler's result configure: WARNING: *** FAM support will not be built (FAM library not found) *** configure: WARNING: AIX's C compiler needs to be called by a different name, when linking threaded applications. As GLib cannot do that automatically, you will get an linkg error everytime you are not using the right compiler. In that case you have to relink with the right compiler. Ususally just '_r' is appended to the compiler name. + make > build/aix/make.out 1500-030: (I) INFORMATION: match: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. 165 1500-010: (W) WARNING in tuple_hash: Infinite loop. Program may not stop. 179 1500-010: (W) WARNING in tuple_equal: Infinite loop. Program may not stop. "gatomic.c", line 392.10: 1506-280 (W) Function argument assignment between types "volatile int*" and "void* volatile*" is not allowed. 266 1500-010: (W) WARNING in g_base64_encode: Infinite loop. Program may not stop. 1500-010: (W) WARNING in glib_worker_main: Infinite loop. Program may not stop. "gmappedfile.c", line 120.19: 1506-068 (W) Operation between types "void*" and "void(*)(struct _GMappedFile*)" is not allowed. 1500-029: (W) WARNING: subprogram emit_start_element could not be inlined into g_markup_parse_context_parse. 164 1500-010: (W) WARNING in g_malloc: Infinite loop. Program may not stop. 194 1500-010: (W) WARNING in g_malloc0: Infinite loop. Program may not stop. 229 1500-010: (W) WARNING in g_realloc: Infinite loop. Program may not stop. 396 1500-010: (W) WARNING in g_malloc_n: Infinite loop. Program may not stop. 420 1500-010: (W) WARNING in g_malloc0_n: Infinite loop. Program may not stop. 446 1500-010: (W) WARNING in g_realloc_n: Infinite loop. Program may not stop. "gtestutils.c", line 1374.21: 1506-068 (W) Operation between types "void(*)(void*,const void*)" and "void*" is not allowed. "gtestutils.c", line 1375.20: 1506-068 (W) Operation between types "void(*)(void*,const void*)" and "void*" is not allowed. "gtestutils.c", line 1376.24: 1506-068 (W) Operation between types "void(*)(void*,const void*)" and "void*" is not allowed. 2519 1500-010: (W) WARNING in g_test_log_extract: Infinite loop. Program may not stop. 772 1500-010: (W) WARNING in parse_args: Infinite loop. Program may not stop. 1013 1500-010: (W) WARNING in test_run_seed: Infinite loop. Program may not stop. 1434 1500-010: (W) WARNING in g_test_add_vtable: Infinite loop. Program may not stop. 2209 1500-010: (W) WARNING in g_test_trap_fork: Infinite loop. Program may not stop. 2384 1500-010: (W) WARNING in g_test_trap_assertions: Infinite loop. Program may not stop. 839 1500-010: (W) WARNING in g_thread_new: Infinite loop. Program may not stop. 924 1500-010: (W) WARNING in g_thread_exit: Infinite loop. Program may not stop. 290 1500-010: (W) WARNING in g_atexit: Infinite loop. Program may not stop. 4169 1500-010: (W) WARNING in g_variant_valist_new_nnp: Infinite loop. Program may not stop. 2450 1500-010: (W) WARNING in g_variant_new_parsed_va: Infinite loop. Program may not stop. 1369 1500-010: (W) WARNING in g_variant_serialised_get_child: Infinite loop. Program may not stop. 163 1500-010: (W) WARNING in g_wakeup_new: Infinite loop. Program may not stop. 1162 1500-010: (W) WARNING in g_system_thread_wait: Infinite loop. Program may not stop. 1106 1500-010: (W) WARNING in g_system_thread_new: Infinite loop. Program may not stop. ld: 0706-027 The -B symbolic-functions flag is ignored. 615 1500-010: (W) WARNING in parse_args: Infinite loop. Program may not stop. 292 1500-010: (W) WARNING in launch_test_binary: Infinite loop. Program may not stop. 681 1500-010: (W) WARNING in main: Infinite loop. Program may not stop. 1500-030: (I) INFORMATION: test_types: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. 1500-030: (I) INFORMATION: test_modify: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. 424 1500-010: (W) WARNING in test_mkdir_with_parents_1: Infinite loop. Program may not stop. 1500-030: (I) INFORMATION: test_build_pathv: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. 1168 1500-010: (W) WARNING in test_all_dates: Infinite loop. Program may not stop. 1500-030: (I) INFORMATION: test_GDateTime_printf: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. "gvariant.c", line 4309.29: 1506-280 (W) Function argument assignment between types "void(*)(const void*)" and "void*" is not allowed. 1287 1500-010: (W) WARNING in align_malloc: Infinite loop. Program may not stop. 3860 1500-010: (W) WARNING in test_parse_failures: Infinite loop. Program may not stop. 1500-030: (I) INFORMATION: test_parse_failures: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192. 163 1500-010: (W) WARNING in g_wakeup_new: Infinite loop. Program may not stop. "hook.c", line 49.14: 1506-068 (W) Operation between types "void*" and "void(*)(void*)" is not allowed. "hook.c", line 60.14: 1506-068 (W) Operation between types "void*" and "void(*)(void*)" is not allowed. "hook.c", line 69.14: 1506-068 (W) Operation between types "void*" and "void(*)(void*)" is not allowed. "hook.c", line 76.14: 1506-068 (W) Operation between types "void*" and "void(*)(void*)" is not allowed. 68 1500-010: (W) WARNING in test_default_handler: Infinite loop. Program may not stop. 1033 1500-010: (W) WARNING in assert_main_context_state: Infinite loop. Program may not stop. 300 1500-010: (W) WARNING in test: Infinite loop. Program may not stop. "mem-overflow.c", line 24.1: 1506-224 (I) Incorrect pragma ignored. "option-context.c", line 689.46: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 730.65: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 774.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 810.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 846.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 883.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 921.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 959.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 997.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1035.9: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1079.58: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1124.47: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1125.73: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1126.85: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. "option-context.c", line 1870.73: 1506-196 (W) Initialization between types "void*" and "int(*)(const char*,const char*,void*,struct _GError**)" is not allowed. cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory make[4]: *** [private] Error 255 make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 + make install DESTDIR=/var/tmp/root/glib-2.36.4.0 > build/aix/install.out libtool: install: warning: remember to run `libtool --finish /opt/lib' libtool: install: warning: `libglib-2.0.la' has not been installed in `/opt/lib' cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory make[3]: *** [private] Error 255 make[2]: *** [install-recursive] Error 1 make[1]: *** [install] Error 2 make: *** [install-recursive] Error 1 make install returned an error root@x093:[/data/prj/gnu/glib/glib-2.36.4] Script command is complete. The file is /tmp/glib-2.36.4.script. What comes after this you have already. The key part of the buildaix script is: #!/usr/bin/ksh # Copyright 2012 -- Michael Felt # $Revision:: 69 $: Revision of last commit # $Author:: root $: Author of last commit # $Date:: 2013-01-10 17:42:47 +0100 (Thu, #$: Date of last commit # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # assume if gcc is installed, vac flags are not wanted # if gcc is not installed, add -qlanglvl=extc99 # if CFLAGS are already defined, use the argument . type gcc 2>/dev/null if [[ $? -ne 0 ]] then CFLAGS=${CFLAGS:="-O2 -qlanglvl=extc99"} else CFLAGS=${CFLAGS:=-O2} fi [[ ! -e /usr/include/zlib.h && ! -e /usr/local/include/zlib.h ]] && \ export CFLAGS="-I/opt/aixtools/include $CFLAGS" # some configure (buildconf results) do not find /opt/include export CPPFLAGS=${CPPFLAGS:=-I/opt/include} ... snip ... . aixinfo # set environment and installp variables ... snip ... if [[ -e ./Makefile ]] then echo $0: using existing Makefile echo $0: run ${MAKE} distclean to get a standard AIX configure echo ls -l ./Makefile config.* echo else echo "+ CPPFLAGS=${CPPFLAGS} CFLAGS=${CFLAGS} ./configure \\ \n\ --prefix=/opt \\ \n\ --sysconfdir=/var/${NAME}/etc \\ \n\ --sharedstatedir=/var/${NAME}/com \\ \n\ --localstatedir=/var/${NAME} \\ \n\ --mandir=/usr/share/man $cfgargs \\ \n\ > build/aix/configure.out" CPPFLAGS=${CPPFLAGS} CFLAGS=${CFLAGS} ./configure \ --prefix=/opt \ --sysconfdir=/var/${NAME}/etc \ --sharedstatedir=/var/${NAME}/com \ --localstatedir=/var/${NAME} \ --mandir=/usr/share/man $cfgargs \ $cfgargs \ > build/aix/configure.out ... snip to end aixinfo environment variables set by aixinfo are: # assumes IBM compiler atm -- the -qcpluscmt is an IBM option! CFLAGS=${CFLAGS:="-O2 -qcpluscmt"} VERSION=1.0.0 RELEASE=0 CD=`pwd` REVISION=`basename ${CD}` set `echo ${REVISION} | awk -F- ' { print $1, $2 } '` NAME=`echo ${REVISION} | awk -F- ' { print $1 } '` VERSION=`echo ${REVISION} | awk -F- ' { print $2 } '` cnt=`echo ${VERSION} | awk -F. ' { print NF } '` case "$cnt" in 1) VERSION=$VERSION.0.0 ;; 2) VERSION=$VERSION.0 ;; 3) VERSION=$VERSION ;; 4) RELEASE=`echo ${VERSION} | cut -d. -s -f4` VERSION=`echo ${VERSION} | cut -d. -s -f1-3` ;; *) echo VERSION parsing error ::$VERSION:: - edit aixinfo exit -1 esac if [[ ${echo} -ne 0 ]] then echo NAME: $NAME echo VERSION.RELEASE: $VERSION.${RELEASE} echo CFLAGS=$CFLAGS fi -- "Thanks for reminding me that I need to remove the CFLAGS part of aixinfo - already done in the buildaix script before" Hope this answers your question! Michael
so... basically you're just going to have to dig in and figure out where the -pthread is coming from
Any suggestions? On a system with no C-compiler, running from the same "Makefile I get a slight surprise" Making all in libcharset source='localcharset.c' object='libcharset_la-localcharset.lo' libtool=yes DEPDIR=.deps depmode=xlc /bin/sh ../../depcomp /bin/sh ../../libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -I../.. -DLIBDIR=\"/opt/lib\" -I../.. -I/opt/include -D_THREAD_SAFE -fvisibility=hidden -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c -o libcharset_la-localcharset.lo `test -f 'localcharset.c' || echo './'`localcharset.c libtool: compile: cc -DHAVE_CONFIG_H -I. -I../.. -DLIBDIR=\"/opt/lib\" -I../.. -I/opt/include -D_THREAD_SAFE -fvisibility=hidden -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c localcharset.c -Wp,-qmakedep=gcc,-MF.deps/libcharset_la-localcharset.TPlo -DPIC -o .libs/libcharset_la-localcharset.o ../../libtool[11]: cc: not found Where does the -qmakedep=gcc come from? When I run make on the system with the compiler (after deleting this target) it makes the target again using: make[4]: Entering directory `/data/prj/gnu/glib/glib-2.36.4/glib/libcharset' source='localcharset.c' object='libcharset_la-localcharset.lo' libtool=yes \ DEPDIR=.deps depmode=xlc /bin/sh ../../depcomp \ /bin/sh ../../libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -I../.. -DLIBDIR=\"/opt/lib\" -I../.. -I/opt/include -D_THREAD_SAFE -fvisibility=hidden -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c -o libcharset_la-localcharset.lo `test -f 'localcharset.c' || echo './'`localcharset.c libtool: compile: cc -DHAVE_CONFIG_H -I. -I../.. -DLIBDIR=\"/opt/lib\" -I../.. -I/opt/include -D_THREAD_SAFE -fvisibility=hidden -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c localcharset.c -Wp,-qmakedep=gcc,-MF.deps/libcharset_la-localcharset.TPlo -DPIC -o .libs/libcharset_la-localcharset.o /bin/sh ../../libtool --tag=CC --mode=link cc -fvisibility=hidden -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o libcharset.la libcharset_la-localcharset.lo -lintl One difference is the system without a cc command is using AIX make, whereas the second system is using gmake - might explain a bit of this - BUT, I find the differences confusing, if not alarming. === Time to install gmake on non build system ... === Using gmake I get some similiarity, but also see some differences (still see -qmakedep=gcc) so there seems to be some - what compiler shall I use? - going on within the makefile processing. === Is this expected behavior? different arguments to ../../libtool from the same set of Makefiles?
So, to see if I could move forward - did the following: root@x093:[/data/prj/gnu/glib/glib-2.36.4]cd /data/prj/gnu/glib/glib-2.36.4/glib/tests root@x093:[/data/prj/gnu/glib/glib-2.36.4/glib/tests]clude -O2 -qlanglvl=extc99 -pthread -o private private.o ../../glib/libglib-2.0.la -lm -lintl < libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -pthread -o .libs/private private.o -L../../glib/.libs -lglib-2.0 -liconv -lm -lintl -pthread -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib cc: 1501-210 (W) command option t contains an incorrect subargument cc: 1501-210 (W) command option t contains an incorrect subargument ld: 0706-005 Cannot find or open file: /lib/mcrt0.o ld:open(): No such file or directory root@x093:[/data/prj/gnu/glib/glib-2.36.4/glib/tests]/bin/sh ../../libtool --tag=CC --mode=link cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -lpthread -o private private.o ../../gli> libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o .libs/private private.o -lpthread -L../../glib/.libs -lglib-2.0 -liconv -lm -lintl -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib === In short, it seems the test 'private' is now linked, and make proceeds - a bit. Your reading of what is "not working" is appreciated! === libtool: link: cc -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o .libs/1bit-mutex 1bit-mutex.o -L../../glib/.libs -lglib-2.0 -liconv -lm -lintl -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib source='1bit-mutex.c' object='1bit_emufutex-1bit-mutex.o' libtool=no \ DEPDIR=.deps depmode=xlc /bin/sh ../../depcomp \ cc -DHAVE_CONFIG_H -I. -I../.. -g -I../.. -I../../glib -I../../glib -I../.. -DG_LOG_DOMAIN=\"GLib\" -DSRCDIR=\""."\" -DG_DISABLE_CAST_CHECKS -I/opt/include -D_THREAD_SAFE -DTEST_EMULATED_FUTEX -I/opt/aixtools/include -O2 -qlanglvl=extc99 -c -o 1bit_emufutex-1bit-mutex.o `test -f '1bit-mutex.c' || echo './'`1bit-mutex.c "1bit-mutex.c", line 27.1: 1506-224 (I) Incorrect pragma ignored. "1bit-mutex.c", line 28.1: 1506-224 (I) Incorrect pragma ignored. "1bit-mutex.c", line 56.1: 1506-224 (I) Incorrect pragma ignored. /bin/sh ../../libtool --tag=CC --mode=link cc -DTEST_EMULATED_FUTEX -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o 1bit-emufutex 1bit_emufutex-1bit-mutex.o ../../glib/libglib-2.0.la -lm -lintl libtool: link: cc -DTEST_EMULATED_FUTEX -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o .libs/1bit-emufutex 1bit_emufutex-1bit-mutex.o -L../../glib/.libs -lglib-2.0 -liconv -lm -lintl -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib ld: 0711-317 ERROR: Undefined symbol: .__sync_fetch_and_and ld: 0711-317 ERROR: Undefined symbol: .__sync_synchronize ld: 0711-317 ERROR: Undefined symbol: .__sync_fetch_and_or ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. make: *** [1bit-emufutex] Error 8 === changing to the glib/test directory, pasting the last /bin/sh libtool .... with -bnoquiet appended gives root@x093:[/data/prj/gnu/glib/glib-2.36.4/glib/tests]emufutex-1bit-mutex.o ../../glib/libglib-2.0.la -lm -lintl -bnoquiet < libtool: link: cc -DTEST_EMULATED_FUTEX -I/opt/aixtools/include -O2 -qlanglvl=extc99 -o .libs/1bit-emufutex 1bit_emufutex-1bit-mutex.o -bnoquiet -L../../glib/.libs -lglib-2.0 -liconv -lm -lintl -Wl,-blibpath:/opt/lib:/usr/vac/lib:/usr/lib:/lib (ld): halt 4 (ld): setfflag 4 (ld): savename .libs/1bit-emufutex (ld): filelist 10 1 (ld): i /lib/crt0.o (ld): i 1bit_emufutex-1bit-mutex.o (ld): lib ../../glib/.libs/libglib-2.0.a (ld): lib /usr/lib/libiconv.a (ld): lib /usr/lib/libm.a (ld): lib /usr/lib/libintl.a (ld): lib /usr/vac/lib/libxlopt.a (ld): lib /usr/vac/lib/libxlipa.a (ld): lib /usr/vac/lib/libxl.a (ld): lib /usr/lib/libc.a LIBRARY: Shared object libglib-2.0.a[libglib-2.0.so.0]: 1659 symbols imported. LIBRARY: Shared object libiconv.a[shr4.o]: 10 symbols imported. LIBRARY: Shared object libiconv.a[shr.o]: 11 symbols imported. LIBRARY: Shared object libintl.a[libintl.so.1]: 37 symbols imported. LIBRARY: Shared object libc.a[shr.o]: 2873 symbols imported. LIBRARY: Shared object libc.a[meth.o]: 2 symbols imported. LIBRARY: Shared object libc.a[posix_aio.o]: 20 symbols imported. LIBRARY: Shared object libc.a[aio.o]: 18 symbols imported. LIBRARY: Shared object libc.a[pse.o]: 5 symbols imported. LIBRARY: Shared object libc.a[dl.o]: 4 symbols imported. LIBRARY: Shared object libc.a[pty.o]: 1 symbols imported. FILELIST: Number of previously inserted files processed: 10 (ld): resolve RESOLVE: 104 of 9310 symbols were kept. (ld): addgl /usr/lib/glink.o ADDGL: Glink code added for 30 symbols. (ld): er full ld: 0711-318 ERROR: Undefined symbols were found. The following symbols are in error: Symbol Inpndx TY CL Source-File(Object-File) OR Import-File{Shared-object} RLD: Address Section Rld-type Referencing Symbol ---------------------------------------------------------------------------------------------- .__sync_fetch_and_and [526] ER PR 1bit-mutex.c(1bit_emufutex-1bit-mutex.o) 0000066c .text R_RBR [232] ._emufutex_g_pointer_bit_unlock 000009e4 .text R_RBR [314] ._emufutex_g_bit_unlock .__sync_synchronize [528] ER PR 1bit-mutex.c(1bit_emufutex-1bit-mutex.o) 00000698 .text R_RBR [232] ._emufutex_g_pointer_bit_unlock 00000a10 .text R_RBR [314] ._emufutex_g_bit_unlock 00000ccc .text R_RBR [381] <.g_futex_wait> .__sync_fetch_and_or [532] ER PR 1bit-mutex.c(1bit_emufutex-1bit-mutex.o) 000007bc .text R_RBR [256] ._emufutex_g_pointer_bit_trylock 00000888 .text R_RBR [276] ._emufutex_g_pointer_bit_lock 00000a9c .text R_RBR [333] ._emufutex_g_bit_trylock 00000b78 .text R_RBR [348] ._emufutex_g_bit_lock ER: The return code is 8. root@x093:[/data/prj/gnu/glib/glib-2.36.4/glib/tests] Please excuse my not knowing where the missing symbols SHOULD be coming from.
(In reply to comment #19) > so... basically you're just going to have to dig in and figure out where the > -pthread is coming from Where do you suggest to put the shovel first?
Well, looking in a haystack, you find things, but not necessarly the pin you are looking for. Going back in time in glib terms I ran into a different undefined symbol - in the tests directory. To get the make to finish I blocked one definition (alias) that was not being treated by the tester.c file. In .../glib/galias.h I "blocked" a definition to get it all to link: /* block definition MAMF extern __typeof (g_test_config_vars) IA__g_test_config_vars __attribute((visibility("hidden"))); #define g_test_config_vars IA__g_test_config_vars */ So, getting back to the needle I really want to find - can anyone give a suggestion on where to look/dig. Something is inserting the argument, and if "you" to code experts do not even have a clue of where to look - how likely is it that someone like myself who is not familiar with the internal workings of all the generators used going to find it. In short - I would really appreciate some assistance. Happy Holidays!
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/glib/issues/764.