serenity icon indicating copy to clipboard operation
serenity copied to clipboard

Ports: Make them build, 2022 edition.

Open timschumi opened this issue 2 years ago • 16 comments

The current list of failing ports (i686 GNU, ~~with #13063 already applied and~~ when building in a clean ports tree) seems to be the following:

  • [x] ccache (ESTALE syntax errors)
  • [ ] composer (depends on php)
  • [ ] fheroes2 (generating localization goes :yakid2:)
  • [x] glib (Fails to link libdl due to referenced hidden symbol. Bisected to 738e52da562e7e46f36b6c71c6da55f87b1e07a2.) (#13843)
  • [ ] gnuapl (Pulls in host headers, which apparently conflict on __throws declarations.)
  • [x] halflife (#13233.)
  • [ ] imagemagick (LDFLAGS only has host library paths, LIBS looks fine.)
  • [x] imgcat (Fails to find <term.h>; /usr/local/include/ncurses -> /usr/local/include?)
  • [ ] libgd (Tries to link against host libraries, and is missing atan2.)
  • [ ] libopenal (Uses system Qt headers, which don't know about Serenity at the very least.)
  • [x] mc (Depends on glib, which is broken.) (#13843)
  • [ ] mgba (Tries to use Qt)
  • [ ] nethack (Pulls in host headers, resulting in macro "__has_attribute" requires an identifier.)
  • [ ] npiet (Depends on libgd, which is broken.)
  • [x] opfor (#13233)
  • [x] p7zip (Fails to link against libiconv.)
  • [ ] php (doesn't understand libtool sysroots, needs a backported commmit chain)
  • [ ] powdertoy (Tries to use host headers)
  • [x] qt6-qtbase (Fails with QFSFileEngine::open: No file name specified.)
  • [x] qt6-serenity (Depends on qt6-qtbase.)
  • [ ] quake3 (Doesn't link in some object files?)
  • [x] radare2 (Undeclared expressions in egg_lang.c?)
  • [x] ruby (ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS causes syntax errors.)
  • [ ] stpuzzles (fails to link __stack_chk_fail_local)
  • [x] stress-ng (#13109)
  • [ ] vlang (Missing atomic.h.)

timschumi avatar Mar 16 '22 11:03 timschumi

angband

checking for FT2... checking for i686-pc-serenity-freetype-config... no
checking for freetype-config... no
checking for FreeType -- version >= 7.0.1... no
configure: WARNING:

  The freetype-config script installed by FreeType 2 could not be found.
  If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in
  your path, or set the FT2_CONFIG environment variable to the
  full path to freetype-config.

configure: error: *** Unable to find FreeType2 library (http://www.freetype.org/)

ERROR: Build of dropbear was not successful!

Downloading URL: https://mirror.dropbear.nl/mirror/releases/dropbear-2019.78.tar.bz2
/usr/bin/curl
+ curl https://mirror.dropbear.nl/mirror/releases/dropbear-2019.78.tar.bz2 -L -o dropbear-2019.78.tar.bz2 (nocd)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2645k  100 2645k    0     0   647k      0  0:00:04  0:00:04 --:--:--  647k
Downloading URL: https://mirror.dropbear.nl/mirror/releases/dropbear-2019.78.tar.bz2.asc
/usr/bin/curl
+ curl https://mirror.dropbear.nl/mirror/releases/dropbear-2019.78.tar.bz2.asc -L -o dropbear-2019.78.tar.bz2.asc (nocd)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   833  100   833    0     0    548      0  0:00:01  0:00:01 --:--:--   548
Downloading URL: https://mirror.dropbear.nl/mirror/releases/dropbear-key-2015.asc
/usr/bin/curl
+ curl https://mirror.dropbear.nl/mirror/releases/dropbear-key-2015.asc -L -o dropbear-key-2015.asc (nocd)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2464  100  2464    0     0   1532      0  0:00:01  0:00:01 --:--:--  1533
gpg: assuming signed data in 'dropbear-2019.78.tar.bz2'
gpg: Signature made Thu 28 Mar 2019 01:17:55 AEDT
gpg:                using RSA key F7347EF2EE2E07A267628CA944931494F29C6773
gpg: [don't know]: invalid packet (ctb=2d)
gpg: keydb_search failed: Invalid packet
gpg: [don't know]: invalid packet (ctb=2d)
gpg: keydb_search failed: Invalid packet
gpg: Can't check signature: No public key
- Signature check NOT OK
  Signature mismatching, removed erronous download.
Please run script again.

ERROR: Build of glib was not successful!

Configuring glib...
+ meson _build --cross-file ../cross_file-i686.txt
../.port_include.sh: line 109: meson: command not found

sudo apt install meson

meson.build:860:2: ERROR: C shared or static library 'dl' not found

ERROR: Build of gnupg was not successful!

configure:
***
*** You need libgcrypt to build this program.
**  This library is for example available at
***   ftp://ftp.gnupg.org/gcrypt/libgcrypt/
*** (at least version 1.8.0 (API 1) is required.)
***
configure:
***
*** You need libksba to build this program.
*** This library is for example available at
***   ftp://ftp.gnupg.org/gcrypt/libksba/
*** (at least version 1.2.0 using API 1 is required).
***

sudo apt install libgcrypt-dev libksba-dev

/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.so when searching for -lc
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libc.a when searching for -lc
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: /home/pierce/serenity/Build/i686/Root/usr/local/lib/libnpth.so: undefined reference to symbol 'pthread_create'
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: /home/pierce/serenity/Toolchain/../Build/i686/Root/usr/lib/libpthread.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:753: keyboxd] Error 1
make[2]: *** Waiting for unfinished jobs....
mv -f .deps/libkeybox509_a-kbx-client-util.Tpo .deps/libkeybox509_a-kbx-client-util.Po
make[2]: Leaving directory '/home/pierce/serenity/Ports/gnupg/gnupg-2.3.0/kbx'
make[1]: *** [Makefile:631: all-recursive] Error 1
make[1]: Leaving directory '/home/pierce/serenity/Ports/gnupg/gnupg-2.3.0'
make: *** [Makefile:551: all] Error 2

ERROR: Build of gnuplot was not successful!

collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:834: gnuplot] Error 1
make[4]: Leaving directory '/home/pierce/serenity/Ports/gnuplot/gnuplot-5.2.8/src'
make[3]: *** [Makefile:1021: all-recursive] Error 1
make[3]: Leaving directory '/home/pierce/serenity/Ports/gnuplot/gnuplot-5.2.8/src'
make[2]: *** [Makefile:690: all] Error 2
make[2]: Leaving directory '/home/pierce/serenity/Ports/gnuplot/gnuplot-5.2.8/src'
make[1]: *** [Makefile:433: all-recursive] Error 1
make[1]: Leaving directory '/home/pierce/serenity/Ports/gnuplot/gnuplot-5.2.8'
make: *** [Makefile:372: all] Error 2

ERROR: Build of halflife was not successful! fontconfig isn't installed correctly. Make sure you installed proper development package for target architecture ERROR: Build of imagemagick was not successful!

MagickCore/magick.c:101:12: fatal error: libxml/parser.h: No such file or directory
  101 | #  include <libxml/parser.h>
      |            ^~~~~~~~~~~~~~~~~

ERROR: Build of imgcat was not successful!

checking for term.h... /tmp/conftest.1996983.c:1:12: fatal error: term.h: No such file or directory
    1 |   #include <term.h>
      |            ^~~~~~~~

ERROR: Build of libopenal was not successful!

/home/pierce/serenity/Ports/libopenal/openal-soft-1.21.1/examples/alffplay.cpp:1716:40: error: invalid conversion from 'const AVCodec*' to 'AVCodec*' [-fpermissive]
 1716 |     AVCodec *codec{avcodec_find_decoder(avctx->codec_id)};
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
      |                                        |
      |                                        const AVCodec*

links

Building links...
+ make -j8
i686-pc-serenity-gcc  -g -O2  -o links  af_unix.o auth.o beos.o bfu.o block.o bookmark.o cache.o charsets.o compress.o connect.o cookies.o data.o default.o dip.o directfb.o dither.o dns.o dos.o drivers.o error.o file.o finger.o fn_impl.o fontconf.o font_inc.o framebuf.o freetype.o ftp.o gif.o grx.o hpux.o html.o html_gr.o html_r.o html_tbl.o http.o https.o img.o imgcache.o jpeg.o jsint.o kbd.o language.o listedit.o lru.o mailto.o main.o memory.o menu.o objreq.o os_dep.o pmshell.o png.o sched.o select.o session.o smb.o string.o suffix.o svg.o svgalib.o terminal.o tiff.o types.o url.o view.o view_gr.o vms.o x.o xbm.o  -llzma -lbz2 -lzstd -lz -lssl -lcrypto
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: warning: libcrypto.so.1.1, needed by /home/pierce/serenity/Toolchain/../Build/i686/Root/usr/local/lib/libssl.so, may conflict with libcrypto.so.serenity
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: menu.o: undefined reference to symbol 'OpenSSL_version'
/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: /home/pierce/serenity/Toolchain/../Build/i686/Root/usr/local/lib/libcrypto.so.1.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:225: links] Error 1

ERROR: Build of mc was not successful! meson.build:860:2: ERROR: C shared or static library 'dl' not found

ERROR: Build of nethack was not successful!

/usr/include/x86_64-linux-gnu/sys/cdefs.h:345:73: error: macro "__has_attribute" requires an identifier
  345 | #if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__)
      |                                                                         ^

ERROR: Build of openttd was not successful!

/home/pierce/serenity/Toolchain/Local/i686/lib/gcc/i686-pc-serenity/11.2.0/../../../../i686-pc-serenity/bin/ld: /home/pierce/serenity/Build/superbuild-i686/../i686/Root/usr/local/lib/libfontconfig.a(fccfg.o): in function `IA__FcConfigFileInfoIterGet':
fccfg.c:(.text+0x612c): undefined reference to `libintl_dgettext'

ERROR: Build of opfor was not successful! ERROR: Build of qt6-qtbase was not successful! You need to have Qt 6.2.2 installed on the host (path /usr/lib64/cmake/Qt6HostInfo/ is missing) ERROR: Build of qt6-serenity was not successful! You need to have Qt 6.2.2 installed on the host (path /usr/lib64/cmake/Qt6HostInfo/ is missing) ERROR: Build of radare2 was not successful! ERROR: Build of ruby was not successful! Toolchain/BuildRuby.sh

gc.c:5602:38: error: expected identifier or '(' before 'static'
 5602 | ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n));
      |                                      ^~~~~~

ERROR: Build of vlang was not successful!

archanox avatar Mar 16 '22 12:03 archanox

x86_64 build on M1 Mac

Errors:

  • cfunge: fails on make, gcc broken:
    Configuring cfunge...
    + cmake ..
    -- The C compiler identification is GNU 11.2.0
    -- Checking whether C compiler has -isysroot
    -- Checking whether C compiler has -isysroot - yes
    -- Checking whether C compiler supports OSX deployment target flag
    -- Checking whether C compiler supports OSX deployment target flag - no
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - failed
    -- Check for working C compiler: /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-gcc
    -- Check for working C compiler: /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-gcc - broken
    CMake Error at /opt/homebrew/Cellar/cmake/3.22.3/share/cmake/Modules/CMakeTestCCompiler.cmake:69 (message):
      The C compiler
    
    "/Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-gcc"
    

    is not able to compile a simple test program.

    It fails with the following output:

    Change Dir: /Users/erik/git/serenity/Ports/cfunge/cfunge-2bc4fb27ade2a816ca9a90a6d9f6958111123fa9/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/make -f Makefile cmTC_93b82/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_93b82.dir/build.make CMakeFiles/cmTC_93b82.dir/build
    Building C object CMakeFiles/cmTC_93b82.dir/testCCompiler.c.o
    /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-gcc   -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -o CMakeFiles/cmTC_93b82.dir/testCCompiler.c.o -c /Users/erik/git/serenity/Ports/cfunge/cfunge-2bc4fb27ade2a816ca9a90a6d9f6958111123fa9/build/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_93b82
    /opt/homebrew/Cellar/cmake/3.22.3/bin/cmake -E cmake_link_script CMakeFiles/cmTC_93b82.dir/link.txt --verbose=1
    /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-gcc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_93b82.dir/testCCompiler.c.o -o cmTC_93b82
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: Error: unable to disambiguate: -search_paths_first (did you mean --search_paths_first ?)
    collect2: error: ld returned 1 exit status
    make[1]: *** [cmTC_93b82] Error 1
    make: *** [cmTC_93b82/fast] Error 2
    

    CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:19 (project)

    -- Configuring incomplete, errors occurred! See also "/Users/erik/git/serenity/Ports/cfunge/cfunge-2bc4fb27ade2a816ca9a90a6d9f6958111123fa9/build/CMakeFiles/CMakeOutput.log". See also "/Users/erik/git/serenity/Ports/cfunge/cfunge-2bc4fb27ade2a816ca9a90a6d9f6958111123fa9/build/CMakeFiles/CMakeError.log".

  • dash: fails on make, struct stat64:
    Building dash...
    + sh -c cd host-build && make -j8
    (CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/sh /Users/erik/git/serenity/Ports/dash/dash-0.5.10.2/missing --run autoheader)
    rm -f stamp-h1
    touch ../config.h.in
    cd . && /bin/sh ./config.status config.h
    config.status: creating config.h
    /Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
    Making all in src
    cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -E -x c -o builtins.def ../../src/builtins.def.in
    cc -I.    ../../src/mknodes.c   -o mknodes
    cc -I.    ../../src/mksyntax.c   -o mksyntax
    /bin/sh ../../src/mktokens
    /bin/sh ../../src/mktokens
    /bin/sh ../../src/mkbuiltins builtins.def
    ./mksyntax
    ./mknodes ../../src/nodetypes ../../src/nodes.c.pat
    /Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
    depbase=`echo alias.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT alias.o -MD -MP -MF $depbase.Tpo -c -o alias.o ../../src/alias.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo arith_yacc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT arith_yacc.o -MD -MP -MF $depbase.Tpo -c -o arith_yacc.o ../../src/arith_yacc.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo arith_yylex.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT arith_yylex.o -MD -MP -MF $depbase.Tpo -c -o arith_yylex.o ../../src/arith_yylex.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo cd.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT cd.o -MD -MP -MF $depbase.Tpo -c -o cd.o ../../src/cd.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo error.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT error.o -MD -MP -MF $depbase.Tpo -c -o error.o ../../src/error.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo eval.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT eval.o -MD -MP -MF $depbase.Tpo -c -o eval.o ../../src/eval.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo exec.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT exec.o -MD -MP -MF $depbase.Tpo -c -o exec.o ../../src/exec.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    depbase=`echo expand.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    	cc -DHAVE_CONFIG_H -I. -I../../src -I..  -include ../config.h -DBSD=1 -DSHELL -DIFS_BROKEN  -Wall -I. -MT expand.o -MD -MP -MF $depbase.Tpo -c -o expand.o ../../src/expand.c &&\
    	mv -f $depbase.Tpo $depbase.Po
    ../../src/exec.c:292:16: error: variable has incomplete type 'struct stat64'
            struct stat64 statb;
                          ^
    ../../src/exec.c:292:9: note: forward declaration of 'struct stat64'
            struct stat64 statb;
                   ^
    ../../src/exec.c:301:11: error: implicit declaration of function 'stat64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                            while (stat64(name, &statb) = 0)
                        ^
    ../../src/expand.c:1361:7: note: did you mean 'lstat'?
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/stat.h:383:9: note: 'lstat' declared here
    int     lstat(const char *, struct stat *) __DARWIN_INODE64(lstat);
            ^
    ../../src/eval.c:1112:13: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
                    p = " %s" + (1 - sep);
                        ~~~~~~^~~~~~~~~~~
    2 errors generated.
    ../../src/eval.c:1112:13: note: use array indexing to silence this warning
                    p = " %s" + (1 - sep);
                              ^
                        &     [          ]
    make[3]: *** [expand.o] Error 1
    4 warnings generated.
    ../../src/mail.c:75:16: error: variable has incomplete type 'struct stat64'
            struct stat64 statb;
                          ^
    ../../src/mail.c:75:9: note: forward declaration of 'struct stat64'
            struct stat64 statb;
                   ^
    ../../src/mail.c:91:7: error: implicit declaration of function 'stat64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                    if (stat64(p, &statb) 
    
  • epsilon: fails on linking, arm64:
    Building epsilon...
    + make PLATFORM=simulator TARGET=serenity SERENITY_INSTALL_ROOT=/Users/erik/git/serenity/Build/x86_64/Root
    HOSTCC  kandinsky/fonts/rasterizer
    ld: warning: ignoring file /Users/erik/git/serenity/Build/x86_64/Root/usr/local/lib/libpng16.so, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
    ld: warning: ignoring file /Users/erik/git/serenity/Build/x86_64/Root/usr/local/lib/libz.so, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
    ld: warning: ignoring file /Users/erik/git/serenity/Build/x86_64/Root/usr/local/lib/libfreetype.so, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
    Undefined symbols for architecture arm64:
      "_FT_Init_FreeType", referenced from:
          _main in rasterizer-516021.o
      "_FT_Load_Char", referenced from:
          _main in rasterizer-516021.o
      "_FT_New_Face", referenced from:
          _main in rasterizer-516021.o
      "_FT_Set_Pixel_Sizes", referenced from:
          _main in rasterizer-516021.o
      "_png_create_info_struct", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_create_write_struct", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_destroy_write_struct", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_free_data", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_init_io", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_set_IHDR", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_write_end", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_write_info", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
      "_png_write_row", referenced from:
          _writeImageToPNGFile in rasterizer-516021.o
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make: *** [output/release/simulator/serenity/kandinsky/fonts/rasterizer] Error 1
    
  • ffmpeg: fails on install, after installing `yasm` (`brew install yasm`):
    INSTALL	libavutil/libavutil.pc
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Build/x86_64/Root/usr/local/lib/libavcodec.a(cavsdsp.o): relocation R_X86_64_PC32 against symbol `ff_pw_5' can not be used when making a shared object; recompile with -fPIC
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: final link failed: bad value
    collect2: error: ld returned 1 exit status
    
  • gnupg: fails on make, undefined reference (after `brew install libgpg-error`):
    /bin/sh ../libtool  --tag=CC   --mode=link x86_64-pc-serenity-gcc -I/opt/homebrew/opt/libgpg-error/include  -g -O2 -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wpointer-arith -Wno-pointer-sign   -o ber-dump ber_dump-ber-dump.o ber_dump-ber-decoder.o ber_dump-ber-help.o ber_dump-reader.o ber_dump-writer.o ber_dump-asn1-parse.o ber_dump-asn1-func.o ber_dump-oid.o ber_dump-time.o ber_dump-util.o -L/opt/homebrew/opt/libgpg-error/lib -lgpg-error ../gl/libgnu.la
    libtool: link: x86_64-pc-serenity-gcc -I/opt/homebrew/opt/libgpg-error/include -g -O2 -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wpointer-arith -Wno-pointer-sign -o ber-dump ber_dump-ber-dump.o ber_dump-ber-decoder.o ber_dump-ber-help.o ber_dump-reader.o ber_dump-writer.o ber_dump-asn1-parse.o ber_dump-asn1-func.o ber_dump-oid.o ber_dump-time.o ber_dump-util.o  -L/opt/homebrew/opt/libgpg-error/lib -lgpg-error ../gl/.libs/libgnu.a
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-ber-decoder.o: in function `decoder_next':
    /Users/erik/git/serenity/Ports/libksba/libksba-1.5.1/src/ber-decoder.c:842: undefined reference to `gpg_strerror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-ber-decoder.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-ber-help.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-reader.o: in function `gpg_error_from_errno':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: undefined reference to `gpg_err_code_from_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: undefined reference to `gpg_err_code_from_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: undefined reference to `gpg_err_code_from_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: undefined reference to `gpg_err_code_from_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-writer.o: in function `gpg_error_from_errno':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: undefined reference to `gpg_err_code_from_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-writer.o:/opt/homebrew/opt/libgpg-error/include/gpg-error.h:1059: more undefined references to `gpg_err_code_from_errno' follow
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-asn1-parse.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-oid.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-util.o: in function `_ksba_calloc':
    /Users/erik/git/serenity/Ports/libksba/libksba-1.5.1/src/util.c:142: undefined reference to `gpg_err_set_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-util.o: in function `_ksba_reallocarray':
    /Users/erik/git/serenity/Ports/libksba/libksba-1.5.1/src/util.c:209: undefined reference to `gpg_err_set_errno'
    collect2: error: ld returned 1 exit status
    make[3]: *** [ber-dump] Error 1
    make[3]: *** Waiting for unfinished jobs....
    mv -f .deps/asn1-parse.Tpo .deps/asn1-parse.Plo
    make[2]: *** [all] Error 2
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2
    
  • imagemagick: fails on make, libxml/parser.h not found:
      CC       MagickCore/libMagickCore_7_Q16HDRI_la-option.lo
    MagickCore/magick.c:101:12: fatal error: libxml/parser.h: No such file or directory
      101 | #  include 
          |            ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[1]: *** [MagickCore/libMagickCore_7_Q16HDRI_la-magick.lo] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make: *** [all] Error 2
    
    • after adding libxml2 as a dependency: cannot find -lX11:
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: cannot find -lX11: No such file or directory
    collect2: error: ld returned 1 exit status
    make[1]: *** [utilities/magick] Error 1
    
  • libassuan: fails on make, undefined reference:
    .../Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/libassuan/libassuan-2.5.5/src/assuan-socket.c:452: undefined reference to `gpg_err_set_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ../src/.libs/libassuan.a(libassuan_la-assuan-socket.o): in function `do_readn':
    /Users/erik/git/serenity/Ports/libassuan/libassuan-2.5.5/src/assuan-socket.c:656: undefined reference to `gpg_err_set_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ../src/.libs/libassuan.a(libassuan_la-assuan-socket.o): in function `do_writen':
    /Users/erik/git/serenity/Ports/libassuan/libassuan-2.5.5/src/assuan-socket.c:680: undefined reference to `gpg_err_set_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ../src/.libs/libassuan.a(libassuan_la-assuan-socket.o):/Users/erik/git/serenity/Ports/libassuan/libassuan-2.5.5/src/assuan-socket.c:912: more undefined references to `gpg_err_set_errno' follow
    make[3]: *** [pipeconnect] Error 1
    collect2: error: ld returned 1 exit status
    make[3]: *** [socks5] Error 1
    make[2]: *** [all] Error 2
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2
    
  • libksba: fails on make, indefined reference:
    ...
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-asn1-parse.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-oid.o: in function `gpg_error_from_syserror':
    /opt/homebrew/opt/libgpg-error/include/gpg-error.h:1065: undefined reference to `gpg_err_code_from_syserror'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-util.o: in function `_ksba_calloc':
    /Users/erik/git/serenity/Ports/libksba/libksba-1.5.1/src/util.c:142: undefined reference to `gpg_err_set_errno'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: ber_dump-util.o: in function `_ksba_reallocarray':
    /Users/erik/git/serenity/Ports/libksba/libksba-1.5.1/src/util.c:209: undefined reference to `gpg_err_set_errno'
    collect2: error: ld returned 1 exit status
    make[3]: *** [ber-dump] Error 1
    make[3]: *** Waiting for unfinished jobs....
    libtool: link: x86_64-pc-serenity-ranlib .libs/libksba.a
    libtool: link: ( cd ".libs" && rm -f "libksba.la" && ln -s "../libksba.la" "libksba.la" )
    make[2]: *** [all] Error 2
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2
    
  • libopenal: fails on make, undefined reference:
    Building bzip2...
    + make CC=x86_64-pc-serenity-gcc bzip2 bzip2
    x86_64-pc-serenity-gcc -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64  -o bzip2 bzip2.o -L. -lbz2
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: bzip2.o: in function `license':
    /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:1603: undefined reference to `BZ2_bzlibVersion'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: bzip2.o: in function `usage':
    /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:1628: undefined reference to `BZ2_bzlibVersion'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: bzip2.o: in function `compressStream':
    /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:344: undefined reference to `BZ2_bzWriteOpen'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:355: undefined reference to `BZ2_bzWrite'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:360: undefined reference to `BZ2_bzWriteClose64'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:410: undefined reference to `BZ2_bzWriteClose64'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: bzip2.o: in function `testStream':
    /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:572: undefined reference to `BZ2_bzReadOpen'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:580: undefined reference to `BZ2_bzRead'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:585: undefined reference to `BZ2_bzReadGetUnused'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:591: undefined reference to `BZ2_bzReadClose'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:605: undefined reference to `BZ2_bzReadClose'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: bzip2.o: in function `uncompressStream':
    /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:454: undefined reference to `BZ2_bzReadOpen'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:462: undefined reference to `BZ2_bzRead'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:470: undefined reference to `BZ2_bzReadGetUnused'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:476: undefined reference to `BZ2_bzReadClose'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: /Users/erik/git/serenity/Ports/bzip2/bzip2-1.0.8/bzip2.c:518: undefined reference to `BZ2_bzReadClose'
    collect2: error: ld returned 1 exit status
    make: *** [bzip2] Error 1
    
  • lua: fails on make, undefined reference:
    x86_64-pc-serenity-ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o
    x86_64-pc-serenity-ranlib liblua.a
    x86_64-pc-serenity-gcc -std=gnu99 -o lua   lua.o liblua.a -lm -ldl -lreadline
    x86_64-pc-serenity-gcc -std=gnu99 -o luac   luac.o liblua.a -lm -ldl -lreadline
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_throw':
    ldo.c:(.text+0x9f): undefined reference to `_longjmp'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_rawrunprotected':
    ldo.c:(.text+0x26b): undefined reference to `_setjmp'
    collect2: error: ld returned 1 exit status
    make[1]: *** [luac] Error 1
    make[1]: *** Waiting for unfinished jobs....
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_throw':
    ldo.c:(.text+0x9f): undefined reference to `_longjmp'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_rawrunprotected':
    ldo.c:(.text+0x26b): undefined reference to `_setjmp'
    collect2: error: ld returned 1 exit status
    make[1]: *** [lua] Error 1
    make: *** [serenity] Error 2
    
  • luajit: fails on make:
    buildvm_x86.dasc: Assembler messages:
    buildvm_x86.dasc:5: Error: unknown pseudo-op: `.private_extern'
    buildvm_x86.dasc:6: Error: unknown pseudo-op: `.no_dead_strip'
    buildvm_x86.dasc:9: Error: unknown pseudo-op: `.private_extern'
    ...
    buildvm_x86.dasc:2096: Error: unknown pseudo-op: `.cstring'
    buildvm_x86.dasc:2099: Error: character following name is not '#'
    buildvm_x86.dasc:2119: Error: alignment not a power of 2
    ...
    buildvm_x86.dasc:7354: Error: unknown pseudo-op: `.subsections_via_symbols'
    make[1]: *** [lj_vm.o] Error 1
    make: *** [default] Error 2
    
  • luarocks: fails on make, indefined reference:
    Building lua...
    + make -Csrc/ -j8 serenity CC=x86_64-pc-serenity-gcc AR=x86_64-pc-serenity-ar RANLIB=x86_64-pc-serenity-ranlib
    /Applications/Xcode.app/Contents/Developer/usr/bin/make all \
    		CC="x86_64-pc-serenity-gcc -std=gnu99" \
    		AR="x86_64-pc-serenity-ar rcu" \
    		SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE" \
    		SYSLIBS="-ldl -lreadline"
    x86_64-pc-serenity-gcc -std=gnu99 -o lua   lua.o liblua.a -lm -ldl -lreadline
    x86_64-pc-serenity-gcc -std=gnu99 -o luac   luac.o liblua.a -lm -ldl -lreadline
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_throw':
    ldo.c:(.text+0x9f): undefined reference to `_longjmp'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_rawrunprotected':
    ldo.c:(.text+0x26b): undefined reference to `_setjmp'
    collect2: error: ld returned 1 exit status
    make[1]: *** [luac] Error 1
    make[1]: *** Waiting for unfinished jobs....
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_throw':
    ldo.c:(.text+0x9f): undefined reference to `_longjmp'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: liblua.a(ldo.o): in function `luaD_rawrunprotected':
    ldo.c:(.text+0x26b): undefined reference to `_setjmp'
    collect2: error: ld returned 1 exit status
    make[1]: *** [lua] Error 1
    make: *** [serenity] Error 2
    
  • mc: fails on 'F_FULLFSYNC' undeclared
    x86_64-pc-serenity-gcc -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
    fileio.c: In function 'vim_fsync':
    fileio.c:2991:19: error: 'F_FULLFSYNC' undeclared (first use in this function)
     2991 |     r = fcntl(fd, F_FULLFSYNC);
          |                   ^~~~~~~~~~~
    fileio.c:2991:19: note: each undeclared identifier is reported only once for each function it appears in
    
  • milkytracker: fails on https://github.com/SerenityOS/serenity/blob/941d152a88d86808deb4797333b10d6c40440315/Ports/.port_include.sh#L212

  • mold: fails on configure, g++ broken
    -- The CXX compiler identification is GNU 11.2.0
    -- Checking whether CXX compiler has -isysroot
    -- Checking whether CXX compiler has -isysroot - yes
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - failed
    -- Check for working CXX compiler: /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-g++
    -- Check for working CXX compiler: /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-g++ - broken
    CMake Error at /opt/homebrew/Cellar/cmake/3.22.3/share/cmake/Modules/CMakeTestCXXCompiler.cmake:62 (message):
      The C++ compiler
    
    "/Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-g++"
    

    is not able to compile a simple test program.

    It fails with the following output:

    Change Dir: /Users/erik/git/serenity/Ports/mold/mold-1.0.2/out/tbb/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/make -f Makefile cmTC_38a99/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_38a99.dir/build.make CMakeFiles/cmTC_38a99.dir/build
    Building CXX object CMakeFiles/cmTC_38a99.dir/testCXXCompiler.cxx.o
    /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-g++   -D__TBB_DYNAMIC_LOAD_ENABLED=0  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -o CMakeFiles/cmTC_38a99.dir/testCXXCompiler.cxx.o -c /Users/erik/git/serenity/Ports/mold/mold-1.0.2/out/tbb/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    Linking CXX executable cmTC_38a99
    /opt/homebrew/Cellar/cmake/3.22.3/bin/cmake -E cmake_link_script CMakeFiles/cmTC_38a99.dir/link.txt --verbose=1
    /Users/erik/git/serenity/Build/x86_64/ccache/x86_64-pc-serenity-g++ -D__TBB_DYNAMIC_LOAD_ENABLED=0  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/Users/erik/git/serenity/Build/x86_64/Root/usr/local/lib  CMakeFiles/cmTC_38a99.dir/testCXXCompiler.cxx.o -o cmTC_38a99
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: Error: unable to disambiguate: -search_paths_first (did you mean --search_paths_first ?)
    collect2: error: ld returned 1 exit status
    make[2]: *** [cmTC_38a99] Error 1
    make[1]: *** [cmTC_38a99/fast] Error 2
    

    CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:57 (project)

    -- Configuring incomplete, errors occurred!

  • ntbtls: fails on dependency libksba
  • p7zip: fails on make, conflicting types for 'uint64_t':
    In file included from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md4.c:35:
    /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:51:16: error: conflicting types for 'uint64_t'; have 'UInt64' {aka 'long long unsigned int'}
       51 | typedef UInt64 uint64_t;
          |                ^~~~~~~~
    In file included from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/sys/types.h:9,
                     from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/string.h:11,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:41,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md4.c:35:
    /Users/erik/git/serenity/Build/x86_64/Root/usr/include/bits/stdint.h:13:25: note: previous declaration of 'uint64_t' with type 'uint64_t' {aka 'long unsigned int'}
       13 | typedef __UINT64_TYPE__ uint64_t;
          |                         ^~~~~~~~
    In file included from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md2.c:35:
    /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:51:16: error: conflicting types for 'uint64_t'; have 'UInt64' {aka 'long long unsigned int'}
       51 | typedef UInt64 uint64_t;
          |                ^~~~~~~~
    In file included from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/sys/types.h:9,
                     from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/string.h:11,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:41,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md2.c:35:
    /Users/erik/git/serenity/Build/x86_64/Root/usr/include/bits/stdint.h:13:25: note: previous declaration of 'uint64_t' with type 'uint64_t' {aka 'long unsigned int'}
       13 | typedef __UINT64_TYPE__ uint64_t;
          |                         ^~~~~~~~
    In file included from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md5.c:35:
    /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:51:16: error: conflicting types for 'uint64_t'; have 'UInt64' {aka 'long long unsigned int'}
       51 | typedef UInt64 uint64_t;
          |                ^~~~~~~~
    In file included from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/sys/types.h:9,
                     from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/string.h:11,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:41,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md5.c:35:
    /Users/erik/git/serenity/Build/x86_64/Root/usr/include/bits/stdint.h:13:25: note: previous declaration of 'uint64_t' with type 'uint64_t' {aka 'long unsigned int'}
       13 | typedef __UINT64_TYPE__ uint64_t;
          |                         ^~~~~~~~
    In file included from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/sha512.c:35:
    /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:51:16: error: conflicting types for 'uint64_t'; have 'UInt64' {aka 'long long unsigned int'}
       51 | typedef UInt64 uint64_t;
          |                ^~~~~~~~
    In file included from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/sys/types.h:9,
                     from /Users/erik/git/serenity/Build/x86_64/Root/usr/include/string.h:11,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/hash.h:41,
                     from /Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/sha512.c:35:
    /Users/erik/git/serenity/Build/x86_64/Root/usr/include/bits/stdint.h:13:25: note: previous declaration of 'uint64_t[ 19%] Building CXX object bin/CMakeFiles/7z.dir/__/7zip/Archive/7z/7zCompressionMode.cpp.o
    ' with type 'uint64_t' {aka 'long unsigned int'}
       13 | typedef __UINT64_TYPE__ uint64_t;
          |                         ^~~~~~~~
    make[2]: *** [bin/CMakeFiles/7z.dir/Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md2.c.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[2]: *** [bin/CMakeFiles/7z.dir/Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md4.c.o] Error 1
    make[2]: *** [bin/CMakeFiles/7z.dir/Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/sha512.c.o] Error 1
    make[2]: *** [bin/CMakeFiles/7z.dir/Users/erik/git/serenity/Ports/p7zip/p7zip-17.04/C/hashes/md5.c.o] Error 1
    [ 20%] Building CXX object bin/CMakeFiles/7z.dir/__/7zip/Archive/7z/7zDecode.cpp.o
    [ 35%] Built target 7zr
    [ 66%] Built target 7za
    make[1]: *** [bin/CMakeFiles/7z.dir/all] Error 2
    make: *** [all] Error 2
    
  • powdertoy: fails on dependency luajit
  • printf: fails on make, undefined reference:
    Building printf...
    + make -j8
    x86_64-pc-serenity-gcc -O2 -pipe -include puffy.h   -c -o printf.o printf.c
    x86_64-pc-serenity-gcc  -o printf printf.o -lpuffy
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.o: in function `print_escape':
    printf.c:(.text+0x53): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text+0x26a): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text+0x28a): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.o: in function `check_conversion':
    printf.c:(.text+0x3cb): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text+0x408): undefined reference to `warnc'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text+0x41a): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.o: in function `main':
    printf.c:(.text.startup+0x26d): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text.startup+0x68f): undefined reference to `err'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text.startup+0x749): undefined reference to `warnx'
    /Users/erik/git/serenity/Toolchain/Local/x86_64/lib/gcc/x86_64-pc-serenity/11.2.0/../../../../x86_64-pc-serenity/bin/ld: printf.c:(.text.startup+0x761): undefined reference to `warnx'
    collect2: error: ld returned 1 exit status
    make: *** [all] Error 1
    
  • qt6-qtbase, qt6-serenity:
    CMake Error at /opt/homebrew/Caskroom/miniforge/base/lib/cmake/zstd/zstdTargets.cmake:81 (message):
      The imported target "zstd::libzstd_static" references the file
    
     "/opt/homebrew/Caskroom/miniforge/base/lib/libzstd.a"
    

    but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.

    • An install or uninstall procedure did not complete successfully.

    • The installation package was faulty and contained

      "/opt/homebrew/Caskroom/miniforge/base/lib/cmake/zstd/zstdTargets.cmake"

    but not all the files it references.

    Call Stack (most recent call first): /opt/homebrew/Caskroom/miniforge/base/lib/cmake/zstd/ZSTDConfig.cmake:1 (include) cmake/QtFindPackageHelpers.cmake:81 (find_package) configure.cmake:20 (qt_find_package) cmake/QtBaseGlobalTargets.cmake:83 (include) CMakeLists.txt:125 (include)

  • ruby: fails on make, expected identifier or '(' before 'static' (after `env ARCH=x86_64 ./../../Toolchain/BuildRuby.sh):
    compiling regcomp.c
    In file included from ./include/ruby/defines.h:73,
                     from ./include/ruby/ruby.h:23,
                     from constant.h:13,
                     from gc.c:74:
    gc.c:5602:38: error: expected identifier or '(' before 'static'
     5602 | ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n));
          |                                      ^~~~~~
    
  • tcl: fails on make:
    /Users/erik/git/serenity/Ports/tcl/tcl8.6.11/unix/tclUnixTime.c:16:10: fatal error: mach/mach_time.h: No such file or directory
       16 | #include 
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [tclUnixTime.o] Error 1
    
  • tuxracer: fails on make:
    /Users/erik/git/serenity/Ports/tcl/tcl8.6.11/macosx/tclMacOSXFCmd.c:56:10: fatal error: libkern/OSByteOrder.h: No such file or directory
       56 | #include 
          |          ^~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [tclMacOSXFCmd.o] Error 1
    make: *** Waiting for unfinished jobs....
    /Users/erik/git/serenity/Ports/tcl/tcl8.6.11/unix/tclUnixTime.c:16:10: fatal error: mach/mach_time.h: No such file or directory
       16 | #include 
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    /Users/erik/git/serenity/Ports/tcl/tcl8.6.11/unix/tclLoadDyld.c:54:10: fatal error: mach-o/dyld.h: No such file or directory
       54 | #include 
          |          ^~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [tclUnixTime.o] Error 1
    make: *** [tclLoadDyld.o] Error 1
    
  • vim: fails on make:
    x86_64-pc-serenity-gcc -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
    fileio.c: In function 'vim_fsync':
    fileio.c:2991:19: error: 'F_FULLFSYNC' undeclared (first use in this function)
     2991 |     r = fcntl(fd, F_FULLFSYNC);
          |                   ^~~~~~~~~~~
    fileio.c:2991:19: note: each undeclared identifier is reported only once for each function it appears in
    make[1]: *** [objects/fileio.o] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make: *** [first] Error 2
    
  • vlang: fails on make:
    gcc  -std=gnu99 -w -o ./v ./vc/v.c -lm -lpthread
    ./vc/v.c:1233:2: error: VERROR_MESSAGE Header file , needed for module `sync.stdatomic` was not found. Please install the corresponding development headers.
    #error VERROR_MESSAGE Header file , needed for module `sync.stdatomic` was not found. Please install the corresponding development headers.
     ^
    ./vc/v.c:5152:2: error: unknown type name 'atomic_uintptr_t'
            atomic_uintptr_t write_adr;
            ^
    ./vc/v.c:5153:2: error: unknown type name 'atomic_uintptr_t'
            atomic_uintptr_t read_adr;
            ^
    ./vc/v.c:5154:2: error: unknown type name 'atomic_uintptr_t'
            atomic_uintptr_t adr_read;
            ^
    ./vc/v.c:5155:2: error: unknown type name 'atomic_uintptr_t'
            atomic_uintptr_t adr_written;
            ^
    5 errors generated.
    make: *** [all] Error 1
    

Notes:

  • gnucobol: builds after brew install help2man.
  • guile: fails if you have a space in your $PATH.
  • halflife: works after brew install rename, else command rename not found.
  • mbedtls: MacOS 12.3 or newer users need python2 installed (brew install kamilturek/python2/python@2)
  • pfetch: needs install from brew install coreutils, export PATH="/opt/homebrew/Cellar/coreutils/9.0_1/libexec/gnubin:$PATH"

Edit: zlib fixed in SerenityOS/serenity/pull/13336 Edit2: More ports built Edit3: libmad fixed in SerenityOS/serenity/pull/13932 Edit4: dropbear, freeciv and glib working Edit5: bdwgc, halflife, imgcat, libsodium, openttd, opfor, radare2 are now working, jot, mandoc, stress-ng, tr and vitetris are now failing

EWouters avatar Mar 29 '22 17:03 EWouters

The zlib build error is caused by an upstream bug. The fix is in this commit: https://github.com/madler/zlib/commit/05796d3d8d5546cf1b4dfe2cd72ab746afae505d

I can backport that in a sec.

BertalanD avatar Mar 29 '22 17:03 BertalanD

This PR (https://github.com/SerenityPorts/SerenityDOOM/pull/11) makes doom build on x86_64 as well.

EWouters avatar Mar 31 '22 11:03 EWouters

On Debian/Ubuntu I've found that I needed to install the following packages

sudo apt install libsdl2-dev automake autoconf lzip gperf nasm yasm meson gettext help2man libgpg-error-dev autopoint bison lua5.3 python2 rake python-is-python3 imagemagick

archanox avatar Apr 07 '22 23:04 archanox

On Debian/Ubuntu I've found that I needed to install the following packages

sudo apt install libsdl2-dev automake autoconf lzip gperf nasm yasm meson gettext help2man libgpg-error-dev autopoint bison lua5.3 python2 rake python-is-python3 imagemagick

How many of those are actually needed (i.e. it's intended that they are present on the host, not on the target)? I know that lzip is required by some downloads, sadly we don't have any alternative options there. meson, bison and rake also make sense, since they are build tools. yasm/nasm is required by ffmpeg, as it needs an assembler. But where does the rest come from? Because it rather looks like that we are leaking host headers or libraries in half of those cases.

timschumi avatar Apr 08 '22 12:04 timschumi

the nethack issue sounds like this one: https://github.com/NetHack/NetHack/commit/1cb5dc04605daa45f1c6a647c17442ed7ff2fe4e

spahan avatar Apr 13 '22 06:04 spahan

dropbear update and fix: https://github.com/SerenityOS/serenity/pull/13827

RonjaPonja avatar Apr 28 '22 09:04 RonjaPonja

p7zip compiles fine for i686

Compilation
[100%] Linking CXX shared module 7z.so
[100%] Built target 7z
Installing p7zip...
+ cp -r bin/Codecs /stockage/serenity/Build/i686/Root/usr/local/bin
+ cp bin/7z_ /stockage/serenity/Build/i686/Root/usr/local/bin
+ cp bin/7z.so /stockage/serenity/Build/i686/Root/usr/local/bin
+ cp bin/7za /stockage/serenity/Build/i686/Root/usr/local/bin
+ cp bin/7zCon.sfx /stockage/serenity/Build/i686/Root/usr/local/bin
+ cp bin/7zr /stockage/serenity/Build/i686/Root/usr/local/bin

Adding p7zip 17.04 to database of installed ports...
Successfully installed p7zip 17.04.

gouchi avatar May 03 '22 09:05 gouchi

For radare2, it seems there is some issue on enum from <AK/platform.h> ?

gouchi avatar May 03 '22 10:05 gouchi

Libmad compiles for me if I set use_fresh_config_sub to false. Can someone on Linux test if it compiles like that on Linux as well? And possibly on Windows?

EWouters avatar May 06 '22 13:05 EWouters

Libmad compiles for me if I set use_fresh_config_sub to false. Can someone on Linux test if it compiles like that on Linux as well?

On Linux, I got this issue if I set use_fresh_config_sub to false.

Compilation
Installing dependencies of libmad...
Fetching libmad...
Downloading URL: https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
/usr/bin/curl
+ curl https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz -L -o libmad-0.15.1b.tar.gz (nocd)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   376  100   376    0     0    576      0 --:--:-- --:--:-- --:--:--   576
100   347  100   347    0     0    130      0  0:00:02  0:00:02 --:--:--   348
100  490k  100  490k    0     0   171k      0  0:00:02  0:00:02 --:--:-- 2347k
Expecting sha256sum: bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690
sha256sum(libmad-0.15.1b.tar.gz) = 'bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690'
+ tar -xzf libmad-0.15.1b.tar.gz (nocd)
+ touch .libmad-0.15.1b.tar.gz_extracted
Patching libmad...
+ patch -p1
patching file configure
+ touch .0001-Remove-fforce-mem-GCC-argument.patch_applied
Configuring libmad...
+ ./configure --host=i686-pc-serenity --disable-static
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for i686-pc-serenity-strip... i686-pc-serenity-strip
checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `i686-pc-serenity': system `serenity' not recognized
configure: error: /bin/sh ./config.sub i686-pc-serenity failed

gouchi avatar May 06 '22 15:05 gouchi

Thank you for testing! I found a better solution: https://github.com/SerenityOS/serenity/pull/13932. Maybe you can check if that compiles :)

EWouters avatar May 06 '22 16:05 EWouters

Thank you for testing! I found a better solution: #13932. Maybe you can check if that compiles :)

It is compiling on Linux.

gouchi avatar May 06 '22 16:05 gouchi

After the conversion to use libtool, some ports (e.g. freetype) are missing the --with-sysroot=${SERENITY_INSTALL_ROOT} configopts for telling libtool where to look for shlibs.

ADKaster avatar Jun 05 '22 03:06 ADKaster

powdertoy seems to fail based on the version of Meson used (glib also uses host headers but it doesn't cause an error), I'd have to bisect it when it stops working. luajit looks like assembler incompatibilities? The way it does cross-compilation is pretty funky

Update: Meson only works correctly on Ubuntu? Seems like sys_root is only used for pkg-config, and not for headers on Arch distributions.

Update: This is actually caused my Arch shipping pkgconf, and Ubuntu shipping pkg-config, thus the inconsistency. Setting sys_root in the cross-file sets the PKG_CONFIG_SYSROOT_DIR, this has different behavior on pkgconf and doesn't change the include path to the one in Serenity. See pkgconf/pkgconf#251

circl-lastname avatar Jun 13 '22 16:06 circl-lastname

On Debian/Ubuntu I've found that I needed to install the following packages

sudo apt install libsdl2-dev automake autoconf lzip gperf nasm yasm meson gettext help2man libgpg-error-dev autopoint bison lua5.3 python2 rake python-is-python3 imagemagick

I'm working my way through each package individually and collecting the list of missing deps (see gist)

What's the best way to address the problem - a PR against BuildInstructions.md or some other readme file?

jrnewton avatar Sep 21 '22 01:09 jrnewton

@jrnewton That's a good question. We don't currently have any such list for host dependencies. Perhaps a new .md file in Ports would be a good place for them? HostDependencies.md or so?

ADKaster avatar Sep 24 '22 15:09 ADKaster

The host dependencies are hard to specify, as they depend on the host, and are subject to changes.

EWouters avatar Nov 12 '22 09:11 EWouters

It might be hard but the experience of building ports on a fresh host system was really bad. Very whack-a-mole with lots of time spent building, reviewing failure output, googling for a package name, installing the package and then building again, hoping that it works.

When you look at something like the SuperMario port, it seems pretty reasonable to tell the user that SDL is needed (libsdl2-dev, libsdl2-image-dev and libsdl2-mixer-dev).

jrnewton avatar Nov 12 '22 15:11 jrnewton

When you look at something like the SuperMario port, it seems pretty reasonable to tell the user that SDL is needed (libsdl2-dev, libsdl2-image-dev and libsdl2-mixer-dev).

In no way should that be required. Headers are already installed by installing the SDL2 ports as well as its addons.

The only host dependencies that should be required are additional build tools (e.g. meson) or compilers/assemblers (e.g. nasm).

timschumi avatar Nov 12 '22 16:11 timschumi

I'm going to do a reset and try installing super mario again. I'm pretty sure that the SDL2 port did not ensure the host libraries were present, and thus errors like this occurred:

-- Checking for one of the modules 'sdl2' CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:707 (message): None of the required 'sdl2' found Call Stack (most recent call first): CMakeLists.txt:23 (PKG_SEARCH_MODULE)

I will be very happy to be wrong on this :)

jrnewton avatar Nov 12 '22 16:11 jrnewton

There is no question that it doesn't currently work unless SDL2 is installed on the host. But the solution to that should be to make the port use the SDL2 headers that are installed as a part of the port, not to just note down that the host should install SDL2.

timschumi avatar Nov 12 '22 16:11 timschumi

mgba (Tries to use Qt)

mgba compiles fine adding

diff --git a/Ports/mgba/package.sh b/Ports/mgba/package.sh
index 94a62c569c..40e9ca920c 100755
--- a/Ports/mgba/package.sh
+++ b/Ports/mgba/package.sh
@@ -3,7 +3,7 @@ port=mgba
 version=0.9.3
 files="https://github.com/mgba-emu/mgba/archive/refs/tags/${version}.tar.gz mgba-${version}.tar.gz 692ff0ac50e18380df0ff3ee83071f9926715200d0dceedd9d16a028a59537a0"
 auth_type=sha256
-configopts=("-DCMAKE_TOOLCHAIN_FILE=${SERENITY_BUILD_DIR}/CMakeToolchain.txt")
+configopts=("-DCMAKE_TOOLCHAIN_FILE=${SERENITY_BUILD_DIR}/CMakeToolchain.txt"  "-DBUILD_QT=OFF")
 useconfigure=true
 depends=("SDL2" "zlib" "sqlite" "libpng" "libzip")

gouchi avatar Mar 11 '23 16:03 gouchi

Superseded by #18238.

timschumi avatar Apr 08 '23 15:04 timschumi