fail to compile libpq on macOS x86_64 using xmake

57 Views Asked by At

I tried to update libpq in xmake's official repository to version 16.1, however, I encountered many different kinds of strange test failure, such as:

log of test for commit fb8fa01:

...
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Werror=unguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -I/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/include -I/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/include -pthread -D_REENTRANT -D_THREAD_SAFE  -I. -I../../../src/include -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -isysroot /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -I/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/include -I/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/include  -I/Users/runner/.xmake/packages/k/krb5/1.21.2/41e1c6811fbf432095af2fb1f7d923f2/include -I../../../src/port -I../../../src/port -DSO_MAJOR_VERSION=5  -c -o fe-gssapi-common.o fe-gssapi-common.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Werror=unguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -I/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/include -I/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/include -pthread -D_REENTRANT -D_THREAD_SAFE  -I. -I../../../src/include -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -isysroot /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -I/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/include -I/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/include  -I/Users/runner/.xmake/packages/k/krb5/1.21.2/41e1c6811fbf432095af2fb1f7d923f2/include -I../../../src/port -I../../../src/port -DSO_MAJOR_VERSION=5  -c -o fe-secure-gssapi.o fe-secure-gssapi.c
awk '/^[^#]/ {printf "_%s\n",$1}' exports.txt >exports.list
echo 'prefix=/Users/runner/.xmake/packages/l/libpq/16.1/b9fd6e4027614db0ba5d32b5a9e5a2e7' >libpq.pc
echo 'exec_prefix=prefix' >>libpq.pc
echo 'libdir=exec_prefix/lib' >>libpq.pc
echo 'includedir=prefix/include' >>libpq.pc
echo >>libpq.pc
echo 'Name: libpq' >>libpq.pc
echo 'Description: PostgreSQL libpq library' >>libpq.pc
echo 'URL: https://www.postgresql.org/' >>libpq.pc
echo 'Version: 16.1' >>libpq.pc
echo 'Requires: ' >>libpq.pc
echo 'Requires.private: libssl, libcrypto' >>libpq.pc
echo 'Cflags: -Iincludedir' >>libpq.pc
echo 'Libs: -Llibdir -lpq' >>libpq.pc
echo 'Libs.private: -L/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/lib -L/Users/runner/.xmake/packages/k/krb5/1.21.2/41e1c6811fbf432095af2fb1f7d923f2/lib -L/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/lib -L/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/lib -lpgcommon -lpgport -lssl -lgssapi_krb5 -lm' >>libpq.pc
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Werror=unguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -I/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/include -I/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/include -I/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/include -pthread -D_REENTRANT -D_THREAD_SAFE  -dynamiclib -install_name '/Users/runner/.xmake/packages/l/libpq/16.1/b9fd6e4027614db0ba5d32b5a9e5a2e7/lib/libpq.5.dylib' -compatibility_version 5 -current_version 5.16 -exported_symbols_list exports.list -o libpq.5.dylib  fe-auth-scram.o fe-connect.o fe-exec.o fe-lobj.o fe-misc.o fe-print.o fe-protocol3.o fe-secure.o fe-trace.o legacy-pqsignal.o libpq-events.o pqexpbuffer.o fe-auth.o fe-secure-common.o fe-secure-openssl.o fe-gssapi-common.o fe-secure-gssapi.o -L../../../src/port -L../../../src/common -lpgcommon_shlib -lpgport_shlib -isysroot /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -L/Users/runner/.xmake/packages/i/icu4c/73.2/836de452315e46c5a7e530be9d75f4c6/lib -licutu -licuio -licui18n -licuuc -licudata -L/Users/runner/.xmake/packages/o/openssl/1.1.1-w/c2197e0381674a7895c20ff32f9302bc/lib -lssl -lcrypto -L/Users/runner/.xmake/packages/z/zlib/v1.3.1/3323a56e4f3c40c2895f732924aff059/lib -lz  -L/Users/runner/.xmake/packages/k/krb5/1.21.2/41e1c6811fbf432095af2fb1f7d923f2/lib -Wl,-dead_strip_dylibs   -lssl -lcrypto -lgssapi_krb5 -lm  
rm -f libpq.a
ar crs libpq.a fe-auth-scram.o fe-connect.o fe-exec.o fe-lobj.o fe-misc.o fe-print.o fe-protocol3.o fe-secure.o fe-trace.o legacy-pqsignal.o libpq-events.o pqexpbuffer.o fe-auth.o fe-secure-common.o fe-secure-openssl.o fe-gssapi-common.o fe-secure-gssapi.o
touch libpq.a
rm -f libpq.dylib
ln -s libpq.5.dylib libpq.dylib
libpq.5.dylib: _atexit
libpq must not be calling any function which invokes exit

stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:957]:
    [@programdir/core/sandbox/modules/os.lua:273]:
    [@programdir/core/sandbox/modules/os.lua:291]: in function 'vrunv'
    [@programdir/modules/package/tools/autoconf.lua:471]: in function 'make'
    [@programdir/modules/package/tools/autoconf.lua:499]: in function 'build'
    [@programdir/modules/package/tools/autoconf.lua:507]: in function 'install'
    [...er/work/xmake-repo/xmake-repo/packages/l/libpq/xmake.lua:33]: in function 'script'
    [...dir/modules/private/action/require/impl/utils/filter.lua:114]: in function 'call'
    [.../modules/private/action/require/impl/actions/install.lua:369]:

  => install libpq 16.1 .. failed
error: @programdir/core/main.lua:306: @programdir/modules/async/runjobs.lua:320: .../modules/private/action/require/impl/actions/install.lua:474: install failed!
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:957]:
    [.../modules/private/action/require/impl/actions/install.lua:474]: in function 'catch'
    [@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
    [.../modules/private/action/require/impl/actions/install.lua:333]:
    [...modules/private/action/require/impl/install_packages.lua:479]: in function 'jobfunc'
    [@programdir/modules/async/runjobs.lua:237]:

stack traceback:
    [C]: in function 'error'
    @programdir/core/base/os.lua:957: in function 'os.raiselevel'
    (...tail calls...)
    @programdir/core/main.lua:306: in upvalue 'cotask'
    @programdir/core/base/scheduler.lua:404: in function <@programdir/core/base/scheduler.lua:397>
warning: configs.shared is readonly in package(krb5), it's always true
error: execv(xmake require -f -y --build -D --extra={configs={shared=false}} krb5 libpq) failed(255)
Error: Process completed with exit code 255.

log of test for commit 4ac6b39:

...
=> download https://github.com/postgres/postgres/archive/refs/tags/REL_16_1.tar.gz .. ok
finding icu4c from xmake ..
checking for flags (-fPIC) ... ok
> clang "-fPIC" "-Qunused-arguments" "-target" "x86_64-apple-macos12.7" "-isysroot" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk"
finding openssl from xmake ..
finding zlib from xmake ..
error: @programdir/core/sandbox/modules/os.lua:273: checking build system type... x86_64-apple-darwin21.6.0
checking host system type... x8configure: error: in `/Users/runner/.xmake/cache/packages/2402/l/libpq/16.1/source':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
g for WAL block size... 8kB
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... 
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:957]:
    [@programdir/core/sandbox/modules/os.lua:273]:
    [@programdir/core/sandbox/modules/os.lua:291]: in function 'vrunv'
    [@programdir/modules/package/tools/autoconf.lua:454]: in function 'configure'
    [@programdir/modules/package/tools/autoconf.lua:478]: in function 'build'
    [@programdir/modules/package/tools/autoconf.lua:507]: in function 'install'
    [...er/work/xmake-repo/xmake-repo/packages/l/libpq/xmake.lua:42]: in function 'script'
    [...dir/modules/private/action/require/impl/utils/filter.lua:114]: in function 'call'
    [.../modules/private/action/require/impl/actions/install.lua:369]:

  => install libpq 16.1 .. failed
error: @programdir/core/main.lua:306: @programdir/modules/async/runjobs.lua:320: .../modules/private/action/require/impl/actions/install.lua:474: install failed!
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:957]:
    [.../modules/private/action/require/impl/actions/install.lua:474]: in function 'catch'
    [@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
    [.../modules/private/action/require/impl/actions/install.lua:333]:
    [...modules/private/action/require/impl/install_packages.lua:479]: in function 'jobfunc'
    [@programdir/modules/async/runjobs.lua:237]:

stack traceback:
    [C]: in function 'error'
    @programdir/core/base/os.lua:957: in function 'base/os.raiselevel'
    (...tail calls...)
    @programdir/core/main.lua:306: in upvalue 'cotask'
    @programdir/core/base/scheduler.lua:404: in function <@programdir/core/base/scheduler.lua:397>
warning: configs.shared is readonly in package(krb5), it's always true
error: execv(xmake require -f -y --build -D --extra={configs={shared=false}} krb5 libpq) failed(255)
Error: Process completed with exit code 255.

For detailed information, please refer to https://github.com/xmake-io/xmake-repo/pull/3223. The document of libpq I read is at https://www.postgresql.org/docs/devel/install-make.html.

The test result of commit 5ae0ef0 https://github.com/xmake-io/xmake-repo/actions/runs/7765800376/job/21180953518 is similar to cannot link libpq on Mac M1.

I have tried to make some adjustments according to the doc and the log(see the pull request). But as I don't have a mac computer at hand, it's hard to debug and my attempt didn't take effect.

0

There are 0 best solutions below