failure to build glib master due to wrong cflags
I tried to build libsoup master and add glib master as a subproject. Meson configure without issues. Compiling however emits the following errors.
aeldemery@fedora ~/P/D/libsoup (add_glib_wrap)> ninja -C builddir
ninja: Entering directory `builddir'
[12/1431] Compiling C object subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbitlock.c.o
FAILED: subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbitlock.c.o
cc -Isubprojects/glib/glib/libglib-2.0.so.0.6701.0.p -Isubprojects/glib/glib -I../subprojects/glib/glib -Isubprojects/glib -I../subprojects/glib -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c99 -g -D_GNU_SOURCE -fno-strict-aliasing -DG_ENABLE_DEBUG -Wduplicated-branches -Wimplicit-fallthrough -Wmisleading-indentation -Wstrict-prototypes -Wunused -Wno-unused-parameter -Wno-bad-function-cast -Wno-cast-function-type -Wno-pedantic -Wno-format-zero-length -Werror=declaration-after-statement -Werror=format=2 -Werror=implicit-function-declaration -Werror=init-self -Werror=missing-include-dirs -Werror=missing-prototypes -Werror=pointer-arith -fPIC -pthread '-DG_LOG_DOMAIN="GLib"' -DGLIB_COMPILATION -fvisibility=hidden -MD -MQ subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbitlock.c.o -MF subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbitlock.c.o.d -o subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbitlock.c.o -c ../subprojects/glib/glib/gbitlock.c
../subprojects/glib/glib/gbitlock.c: In function ‘g_bit_unlock’:
../subprojects/glib/glib/gbitlock.c:325:3: error: ‘asm’ undeclared (first use in this function)
325 | asm volatile ("lock btr %1, (%0)"
| ^~~
../subprojects/glib/glib/gbitlock.c:325:3: note: each undeclared identifier is reported only once for each function it appears in
../subprojects/glib/glib/gbitlock.c:325:6: error: expected ‘;’ before ‘volatile’
325 | asm volatile ("lock btr %1, (%0)"
| ^~~~~~~~~
| ;
../subprojects/glib/glib/gbitlock.c: In function ‘g_pointer_bit_lock’:
../subprojects/glib/glib/gbitlock.c:408:5: error: ‘asm’ undeclared (first use in this function)
408 | asm volatile goto ("lock bts %1, (%0)\n"
| ^~~
../subprojects/glib/glib/gbitlock.c:408:8: error: expected ‘;’ before ‘volatile’
408 | asm volatile goto ("lock bts %1, (%0)\n"
| ^~~~~~~~~
| ;
../subprojects/glib/glib/gbitlock.c:416:2: warning: label ‘contended’ defined but not used [-Wunused-label]
416 | contended:
| ^~~~~~~~~
../subprojects/glib/glib/gbitlock.c: In function ‘g_pointer_bit_trylock’:
../subprojects/glib/glib/gbitlock.c:480:5: error: ‘asm’ undeclared (first use in this function)
480 | asm volatile ("lock bts %2, (%1)\n"
| ^~~
../subprojects/glib/glib/gbitlock.c:480:8: error: expected ‘;’ before ‘volatile’
480 | asm volatile ("lock bts %2, (%1)\n"
| ^~~~~~~~~
| ;
../subprojects/glib/glib/gbitlock.c: In function ‘g_pointer_bit_unlock’:
../subprojects/glib/glib/gbitlock.c:523:5: error: ‘asm’ undeclared (first use in this function)
523 | asm volatile ("lock btr %1, (%0)"
| ^~~
../subprojects/glib/glib/gbitlock.c:523:8: error: expected ‘;’ before ‘volatile’
523 | asm volatile ("lock btr %1, (%0)"
| ^~~~~~~~~
| ;
[25/1431] Compiling C object subprojects/glib/glib/libglib-2.0.so.0.6701.0.p/gbookmarkfile.c.o
ninja: build stopped: subcommand failed.
searching for the error got me to this stackoverflow question which indicate that the flag std should be set to -std=gnu99
.
this is the relevant part in glib meson configure
|Executing subproject glib method meson
|
|Project name: glib
|Project version: 2.67.1
|C compiler for the host machine: cc (gcc 10.2.1 "cc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)")
|C linker for the host machine: cc ld.bfd 2.35-15
|C++ compiler for the host machine: c++ (gcc 10.2.1 "c++ (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)")
|C++ linker for the host machine: c++ ld.bfd 2.35-15
|Compiler for C supports arguments -fno-strict-aliasing: YES
|Checking if "GNU C visibility attributes test" compiles: YES
|Compiler for C supports arguments -fvisibility=hidden: YES
|Message: Enabling various debug infrastructure
|Has header "alloca.h" : YES
|Has header "crt_externs.h" : NO
|Has header "dirent.h" : YES
|Has header "float.h" : YES
|Has header "fstab.h" : YES
|Has header "grp.h" : YES
|Has header "inttypes.h" : YES
|Has header "limits.h" : YES
|Has header "linux/magic.h" : YES
|Has header "locale.h" : YES
|Has header "mach/mach_time.h" : NO
|Has header "memory.h" : YES
|Has header "mntent.h" : YES
|Has header "poll.h" : YES
|Has header "pwd.h" : YES
|Has header "sched.h" : YES
|Has header "spawn.h" : YES
|Has header "stdint.h" : YES
|Has header "stdlib.h" : YES
|Has header "string.h" : YES
|Has header "strings.h" : YES
|Has header "sys/auxv.h" : YES
|Has header "sys/event.h" : NO
|Has header "sys/filio.h" : NO
|Has header "sys/inotify.h" : YES
|Has header "sys/mkdev.h" : NO
|Has header "sys/mntctl.h" : NO
|Has header "sys/mnttab.h" : NO
|Has header "sys/mount.h" : YES
|Has header "sys/param.h" : YES
|Has header "sys/resource.h" : YES
|Has header "sys/select.h" : YES
|Has header "sys/statfs.h" : YES
|Has header "sys/stat.h" : YES
|Has header "sys/statvfs.h" : YES
|Has header "sys/sysctl.h" : NO
|Has header "sys/time.h" : YES
|Has header "sys/times.h" : YES
|Has header "sys/types.h" : YES
|Has header "sys/uio.h" : YES
|Has header "sys/vfs.h" : YES
|Has header "sys/vfstab.h" : NO
|Has header "sys/vmount.h" : NO
|Has header "sys/wait.h" : YES
|Has header "termios.h" : YES
|Has header "unistd.h" : YES
|Has header "values.h" : YES
|Has header "wchar.h" : YES
|Has header "xlocale.h" : NO
|Checking if "malloc.h" compiles: YES
|Has header "linux/netlink.h" : YES
|Checking if "statx() test" compiles: YES
|Header <locale.h> has symbol "LC_MESSAGES" : YES
|Checking whether type "struct stat" has member "st_mtimensec" : YES
|Checking whether type "struct stat" has member "st_mtim.tv_nsec" : NO
|Checking whether type "struct stat" has member "st_atimensec" : YES
|Checking whether type "struct stat" has member "st_atim.tv_nsec" : NO
|Checking whether type "struct stat" has member "st_ctimensec" : YES
|Checking whether type "struct stat" has member "st_ctim.tv_nsec" : NO
|Checking whether type "struct stat" has member "st_birthtime" : NO
|Checking whether type "struct stat" has member "st_birthtimensec" : NO
|Checking whether type "struct stat" has member "st_birthtim" : NO
|Checking whether type "struct stat" has member "st_birthtim.tv_nsec" : NO
|Checking whether type "struct stat" has member "st_blksize" : YES
|Checking whether type "struct stat" has member "st_blocks" : YES
|Checking whether type "struct statfs" has member "f_fstypename" : NO
|Checking whether type "struct statfs" has member "f_bavail" : YES
|Checking whether type "struct dirent" has member "d_type" : YES
|Checking whether type "struct statvfs" has member "f_basetype" : NO
|Checking whether type "struct statvfs" has member "f_fstypename" : NO
|Checking whether type "struct tm" has member "tm_gmtoff" : NO
|Checking whether type "struct tm" has member "__tm_gmtoff" : YES
|Compiler for C supports arguments -Wduplicated-branches: YES
|Compiler for C supports arguments -Wimplicit-fallthrough: YES
|Compiler for C supports arguments -Wmisleading-indentation: YES
|Compiler for C supports arguments -Wstrict-prototypes: YES (cached)
|Compiler for C supports arguments -Wunused: YES
|Compiler for C supports arguments -Wno-unused-parameter -Wunused-parameter: YES
|Compiler for C supports arguments -Wno-bad-function-cast -Wbad-function-cast: YES
|Compiler for C supports arguments -Wno-cast-function-type -Wcast-function-type: YES
|Compiler for C supports arguments -Wno-pedantic -Wpedantic: YES
|Compiler for C supports arguments -Wno-format-zero-length -Wformat-zero-length: YES (cached)
|Compiler for C supports arguments -Werror=declaration-after-statement: YES
|Compiler for C supports arguments -Werror=format=2: YES (cached)
|Compiler for C supports arguments -Werror=implicit-function-declaration: YES (cached)
|Compiler for C supports arguments -Werror=init-self: YES
|Compiler for C supports arguments -Werror=missing-include-dirs: YES
|Compiler for C supports arguments -Werror=missing-prototypes: YES (cached)
|Compiler for C supports arguments -Werror=pointer-arith: YES
|Compiler for C supports link arguments -Wl,-z,nodelete: YES
|Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES
|Checking for function "close_range" : NO
|Checking for function "endmntent" : YES
|Checking for function "endservent" : YES
|Checking for function "fallocate" : YES
|Checking for function "fchmod" : YES
|Checking for function "fchown" : YES
|Checking for function "fdwalk" : NO
|Checking for function "fsync" : YES
|Checking for function "getauxval" : YES
|Checking for function "getc_unlocked" : YES
|Checking for function "getfsstat" : NO
|Checking for function "getgrgid_r" : YES
|Checking for function "getmntent_r" : YES
|Checking for function "getpwuid_r" : YES
|Checking for function "getresuid" : YES
|Checking for function "getvfsstat" : NO
|Checking for function "gmtime_r" : YES
|Checking for function "hasmntopt" : YES
|Checking for function "inotify_init1" : YES
|Checking for function "issetugid" : NO
|Checking for function "kevent" : NO
|Checking for function "kqueue" : NO
|Checking for function "lchmod" : YES
|Checking for function "lchown" : YES
|Checking for function "link" : YES
|Checking for function "localtime_r" : YES
|Checking for function "lstat" : YES
|Checking for function "mbrtowc" : YES
|Checking for function "memalign" : YES
|Checking for function "mmap" : YES
|Checking for function "newlocale" : YES
|Checking for function "pipe2" : YES
|Checking for function "poll" : YES
|Checking for function "prlimit" : YES
|Checking for function "readlink" : YES
|Checking for function "recvmmsg" : YES
|Checking for function "sendmmsg" : YES
|Checking for function "setenv" : YES
|Checking for function "setmntent" : YES
|Checking for function "strerror_r" : YES
|Checking for function "strnlen" : YES
|Checking for function "strsignal" : YES
|Checking for function "strtod_l" : YES
|Checking for function "strtoll_l" : YES
|Checking for function "strtoull_l" : YES
|Checking for function "symlink" : YES
|Checking for function "timegm" : YES
|Checking for function "unsetenv" : YES
|Checking for function "uselocale" : YES
|Checking for function "utimes" : YES
|Checking for function "valloc" : YES
|Checking for function "vasprintf" : YES
|Checking for function "vsnprintf" : YES
|Checking for function "wcrtomb" : YES
|Checking for function "wcslen" : YES
|Checking for function "wcsnlen" : YES
|Checking for function "sysctlbyname" : NO
|Checking for function "statvfs" : YES
|Checking for function "statfs" : YES
|Checking for function "if_indextoname" : YES
|Checking for function "if_nametoindex" : YES
|Checking for function "splice" : YES
|Checking for function "stpcpy" : NO
|Checking for function "posix_memalign" : NO
|Checking for function "posix_spawn" : YES
|Checking if "strerror_r() returns char *" compiles: YES
|Checking for function "snprintf" : YES
|Checking for function "strcasecmp" : YES
|Checking for function "strncasecmp" : YES
|Header <sys/sysmacros.h> has symbol "major" : YES
|Header <dlfcn.h> has symbol "RTLD_LAZY" : YES
|Header <dlfcn.h> has symbol "RTLD_NOW" : YES
|Header <dlfcn.h> has symbol "RTLD_GLOBAL" : YES
|Header <dlfcn.h> has symbol "RTLD_NEXT" : YES
|Message: Checking whether to use statfs or statvfs .. statfs
|Checking for function "mkostemp" : YES
|Checking if "futex(2) system call" links: YES
|Checking if "eventfd(2) system call" links: YES
|Checking if "__uint128_t available" compiles: YES
|Checking if "clock_gettime" links: NO
|Checking if "clock_gettime in librt" links: NO
|Checking if "dlopen() and dlsym() in system libraries" links: NO
|Checking if "dlopen() and dlsym() in libdl" links: YES
|Library dl found: YES
|Checking if "number of arguments to statfs() (n=2)" compiles: YES
|Checking if "open() option O_DIRECTORY" compiles: NO
|Checking if "fcntl() option F_FULLFSYNC" compiles: NO
|Checking if "C99 vsnprintf" runs: YES
|Checking if "C99 snprintf" runs: YES
|Checking if "Unix98 printf positional parameters" runs: YES
|Checking if "nl_langinfo and CODESET" links: YES
|Checking if "nl_langinfo (PM_STR)" links: YES
|Checking if "nl_langinfo (_NL_CTYPE_OUTDIGITn_MB)" links: YES
|Checking if "nl_langinfo (ALTMON_n)" links: YES
|Checking if "nl_langinfo (_NL_ABALTMON_n)" links: YES
|Checking if "signed" compiles: YES
|Header <stddef.h> has symbol "ptrdiff_t" : YES
|Checking if "sig_atomic_t" links: YES
|Checking if "long long" compiles: YES
|Checking if "long double" compiles: YES
|Header <stddef.h> has symbol "wchar_t" : YES
|Header <wchar.h> has symbol "wint_t" : YES
|Checking if "uintmax_t in inttypes.h" compiles: YES
|Checking if "uintmax_t in stdint.h" compiles: YES
|Checking for size of "char" : 1
|Checking for size of "short" : 2
|Checking for size of "int" : 4
|Checking for size of "void*" : 8
|Checking for size of "long" : 8
|Checking for size of "long long" : 8
|Checking for size of "size_t" : 8
|Checking for size of "ssize_t" : -1
|Checking if "int64_t is long" compiles: YES
|Checking for alignment of "char" : 1
|Checking for alignment of "short" : 2
|Checking for alignment of "int" : 4
|Checking for alignment of "void*" : 8
|Checking for alignment of "long" : 8
|Checking for alignment of "long long" : 8
|Checking for alignment of "size_t" : 8
|Checking for size of "wchar_t" : 4
|Checking if "GCC size_t typedef is long" compiles: YES
|Checking if "GCC size_t typedef is long long" compiles: NO
|Checking if "__va_copy check" compiles: YES
|Checking if "va_copy check" compiles: YES
|Checking if "va_lists can be copied as values" runs: DID NOT COMPILE
|Checking if "ISO C99 varargs macros in C" compiles: YES
|Checking if "ISO C99 varargs macros in C++" compiles: YES
|Checking if "GNUC varargs macros" compiles: YES
|Has header "alloca.h" : YES (cached)
|Has header "sys/poll.h" : YES
|Has header "sys/types.h" : YES (cached)
|Has header "winsock2.h" : NO
|Computing int of "POLLIN" : 1
|Computing int of "POLLOUT" : 4
|Computing int of "POLLPRI" : 2
|Computing int of "POLLERR" : 8
|Computing int of "POLLHUP" : 16
|Computing int of "POLLNVAL" : 32
|Computing int of "AF_UNIX" : 1
|Computing int of "AF_INET" : 2
|Computing int of "AF_INET6" : 10
|Computing int of "MSG_OOB" : 1
|Computing int of "MSG_PEEK" : 2
|Computing int of "MSG_DONTROUTE" : 4
|Checking if "atomic ops" links: YES
|Checking if "atomic ops define" compiles: YES
|Run-time dependency threads found: YES
|Header <pthread.h> has symbol "pthread_attr_setstacksize" : YES
|Header <pthread.h> has symbol "pthread_attr_setinheritsched" : YES
|Header <pthread.h> has symbol "pthread_condattr_setclock" : NO
|Header <pthread.h> has symbol "pthread_cond_timedwait_relative_np" : NO
|Header <pthread.h> has symbol "pthread_getname_np" : YES
|Header <sys/syscall.h> has symbol "SYS_sched_getattr" : YES
|Checking if "pthread_setname_np(const char*)" with dependency threads links: NO
|Checking if "pthread_setname_np(pthread_t, const char*)" with dependency threads links: YES
|Checking if "stack grows check" runs: NO (1)
|Checking for function "iconv_open" : YES
|Run-time dependency libpcre found: YES 8.44
|Library m found: YES
|Run-time dependency libffi found: YES 3.1
|Run-time dependency zlib found: YES 1.2.11
|Checking for function "ngettext" : YES
|Checking for function "bind_textdomain_codeset" : YES
|Run-time dependency mount found: YES 2.36.0
|Run-time dependency libselinux found: YES 3.1
|Checking for function "getxattr" : YES
|Has header "sys/xattr.h" : YES
|Checking if "XATTR_NOFOLLOW" compiles: NO
|Checking for function "strlcpy" : NO
|Checking if "/proc/self/cmdline" runs: YES
|Program python3 found: YES (/usr/bin/python3)
|Program bash found: YES
|Program sh found: YES
|Program env found: YES
|Configuring glibconfig.h using configuration
|Dependency sysprof-capture-4 skipped: feature sysprof disabled
|WARNING: Project targeting '>= 0.49.2' but tried to use feature introduced in '0.54.0': meson.override_dependency.
|Configuring gtester-report using configuration
|Configuring libglib-2.0.so.0.6701.0-gdb.py using configuration
|Program xmllint found: YES
|Configuring glib-genmarshal using configuration
|Program /home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gobject/glib-genmarshal found: YES (/home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gobject/glib-genmarshal)
|Configuring glib-mkenums using configuration
|Program /home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gobject/glib-mkenums found: YES (/home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gobject/glib-mkenums)
|Configuring libgobject-2.0.so.0.6701.0-gdb.py using configuration
|Checking if "dlsym() preceding underscores" with dependency -ldl runs: NO (1)
|Checking for function "dlerror" with dependency -ldl: YES
|Configuring gmoduleconf.h using configuration
|Checking if "C_IN in public headers (no arpa/nameser_compat.h needed)" compiles: YES
|Checking if "res_query()" links: NO
|Checking if "res_query() in -lresolv" links: YES
|Library resolv found: YES
|Checking if "socket()" links: YES
|Checking if "res_init()" links: YES
|Checking if "res_nclose()" links: YES
|Checking if "res_ndestroy()" links: NO
|Checking if "res_ninit()" links: YES
|Checking if "res_nquery()" links: YES
|Checking for type "struct ip_mreqn" : NO
|Checking if "ioctl with request SIOCGIFADDR" compiles: NO
|Configuring gnetworking.h using configuration
|Configuring gdbus-codegen using configuration
|Program /home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gio/gdbus-2.0/codegen/gdbus-codegen found: YES (/home/aeldemery/Projects/Development/libsoup/builddir/subprojects/glib/gio/gdbus-2.0/codegen/gdbus-codegen)
|Configuring config.py using configuration
|Run-time dependency libelf found: YES 0.182
|Program gengiotypefuncs.py found: YES
|Run-time dependency dbus-1 found: YES 1.12.20
|Program dbus-daemon found: YES
|Program msgfmt found: YES
|Configuring appinfo-test-gnome.desktop using configuration
|Configuring appinfo-test-notgnome.desktop using configuration
|Configuring appinfo-test.desktop using configuration
|Configuring appinfo-test2.desktop using configuration
|Program objcopy found: YES
|Program ld found: YES
|Configuring org.freedesktop.portal.Documents.service using configuration
|Compiler for C supports arguments -Werror=unused-function: YES
|Library FuzzingEngine skipped: feature oss_fuzz disabled
|Program xgettext found: YES
|Configuring glib-gettextize using configuration
|Configuring config.h using configuration
|Build targets in project: 392
|WARNING: Project specifies a minimum meson_version '>= 0.49.2' but uses features which were added in newer versions:
| * 0.54.0: {'meson.override_dependency'}
|Subproject glib finished.
Dependency glib-2.0 found: YES 2.67.1 (overridden)
Dependency glib-2.0 from subproject subprojects/glib found: YES 2.67.1
Dependency gobject-2.0 found: YES 2.67.1 (overridden)
Dependency gio-2.0 found: YES 2.67.1 (overridden)