• /src/xpdev

    From HotblackDesiato@VERT to rswindell on Thursday, August 08, 2024 00:46:40
    Hi Rob,

    I am trying to compile synchronet on Ubuntu (Bookworm), following https://wiki.synchro.net/install:nix. Both the git build method and the tarball method fail with this error msg:

    Linking gcc.linux.x64.exe.release/sbbsecho
    /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listSemTryWaitBlock': link_list.c:(.text+0x21a): undefined reference to `sem_trywait_block' /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listInit':
    link_list.c:(.text+0x531): undefined reference to `pthread_mutex_initializer_np'
    collect2: error: ld returned 1 exit status

    I understand that the functions listSemTryWaitBlock() and pthread_mutex_initializer_np() are defined in threadwrap.c. I checked src/xpdev/gcc.linux.x64.obj.release and found that threadwrap.o is missing, i.e. it is not being compiled.

    Kindly advise how to fix this issue, please.

    Best,
    Stefan

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From nelgin@VERT/EOTLBBS to HotblackDesiato on Thursday, August 08, 2024 14:10:15
    On Thu, 8 Aug 2024 00:46:40 -0700
    "HotblackDesiato" (VERT) <VERT!HotblackDesiato@endofthelinebbs.com>
    wrote:
    Hi Rob,

    I am trying to compile synchronet on Ubuntu (Bookworm), following https://wiki.synchro.net/install:nix. Both the git build method and the tarball
    method fail with this error msg:

    Linking gcc.linux.x64.exe.release/sbbsecho
    /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listSemTryWaitBlock': link_list.c:(.text+0x21a): undefined reference to `sem_trywait_block' /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listInit':
    link_list.c:(.text+0x531): undefined reference to `pthread_mutex_initializer_np' collect2: error: ld returned 1 exit
    status

    I understand that the functions listSemTryWaitBlock() and pthread_mutex_initializer_np() are defined in threadwrap.c. I checked src/xpdev/gcc.linux.x64.obj.release and found that threadwrap.o is
    missing, i.e. it is not being compiled.

    Kindly advise how to fix this issue, please.

    Best,
    Stefan

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
    Usually if a compile fails, the first thing I do is run ./cleanall.sh
    from the src directory.
    You could also run make with the --trace option to see what's going on.
    I suspect you're missing a library or something.
    --
    End Of The Line BBS - Plano, TX
    telnet endofthelinebbs.com 23
    ---
    ■ Synchronet ■ End Of The Line BBS - endofthelinebbs.com
  • From HotblackDesiato@VERT to nelgin on Thursday, August 08, 2024 17:03:30
    Thanks. I "cleaned" at least twice, i.e. deleted everything and started the compile process fresh.

    It is not a compiler issue, it is an issue with the Makefile. The file threadwarp.c is not compiled. I don't see the threadwarp.o and threadwarp.a files, although I see all other .o and .a files created for "sbbsecho". Of course, the linker complains about missing functions from threadwarp.

    I followed the install guide in the wiki, i.e. I have all prerequisites, all installed. Not sure whether any additional library should be missing. The linker does not complain about a missing library.

    I will use "--trace", thanks.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to HotblackDesiato on Thursday, August 08, 2024 17:09:22
    Re: /src/xpdev
    By: HotblackDesiato to rswindell on Thu Aug 08 2024 12:46 am

    Hi Rob,

    I am trying to compile synchronet on Ubuntu (Bookworm), following https://wiki.synchro.net/install:nix. Both the git build method and the tarball method fail with this error msg:

    Linking gcc.linux.x64.exe.release/sbbsecho
    /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listSemTryWaitBlock': link_list.c:(.text+0x21a): undefined reference to `sem_trywait_block' /usr/bin/ld: /opt/synchronet/src/sbbs3/../xpdev/gcc.linux.x64.lib.release/libxp dev.a(link_list.o): in function `listInit':
    link_list.c:(.text+0x531): undefined reference to `pthread_mutex_initializer_np'
    collect2: error: ld returned 1 exit status

    I understand that the functions listSemTryWaitBlock() and pthread_mutex_initializer_np() are defined in threadwrap.c. I checked src/xpdev/gcc.linux.x64.obj.release and found that threadwrap.o is missing, i.e. it is not being compiled.

    Kindly advise how to fix this issue, please.

    Maybe you got a build failure in xpdev first? Try running 'make' (or 'make RELEASE=1') in the src/xpdev directory and see if you get errors.
    --
    digital man (rob)

    Sling Blade quote #23:
    Karl: I reckon I'm gonna have to get used to looking at pretty people.
    Norco, CA WX: 83.9F, 49.0% humidity, 7 mph WSW wind, 0.00 inches rain/24hrs ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From HotblackDesiato@VERT to Digital Man on Friday, August 09, 2024 20:35:39
    Hi Rob,

    everything looks normal:

    Compiling conwrap.c
    Compiling dat_file.c
    Compiling datewrap.c
    Compiling dirwrap.c
    Compiling filewrap.c
    Compiling genwrap.c
    Compiling ini_file.c
    Compiling link_list.c
    Compiling multisock.c
    Compiling netwrap.c
    Compiling sockwrap.c
    Compiling semfile.c
    Compiling str_list.c
    Compiling strwrap.c
    Compiling unicode.c
    Compiling xp_dl.c
    Compiling xpbeep.c
    Compiling xpdatetime.c
    Compiling xpmap.c
    Compiling xpprintf.c
    Creating gcc.linux.x64.lib.release/libxpdev.a
    Compiling conwrap.c
    Compiling dat_file.c
    Compiling datewrap.c
    Compiling dirwrap.c
    Compiling filewrap.c
    Compiling genwrap.c
    Compiling ini_file.c
    Compiling link_list.c
    Compiling msg_queue.c
    Compiling multisock.c
    Compiling rwlockwrap.c
    Compiling semwrap.c
    Compiling netwrap.c
    Compiling sockwrap.c
    Compiling semfile.c
    Compiling str_list.c
    Compiling strwrap.c
    Compiling threadwrap.c
    Compiling unicode.c
    Compiling xp_dl.c
    Compiling xpbeep.c
    Compiling xpdatetime.c
    Compiling xpmap.c
    Compiling xpprintf.c
    Compiling xpsem.c
    Compiling xpevent.c
    Creating gcc.linux.x64.lib.release/libxpdev_mt.a

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From HotblackDesiato@VERT to Digital Man on Friday, August 09, 2024 20:39:11
    Update: After the make in the xpdev folder, sbbsecho could be linked and the main build command continued. Not sure why...

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From HotblackDesiato@VERT to Digital Man on Friday, August 09, 2024 22:40:19
    Thanks for your help. It is up and running.

    ● sbbs.service - Synchronet BBS
    Loaded: loaded (/lib/systemd/system/sbbs.service; enabled; preset: enabled)
    Active: active (running) since Sat 2024-08-10 12:42:11 +08; 55min ago
    Docs: http://wiki.synchro.net/
    Main PID: 1916244 (sbbs)
    Status: "!Started as non-root user (id 1004): May fail to bind TCP/UDP ports below 1024"
    Tasks: 20 (limit: 9281)
    Memory: 38.0M
    CPU: 35.582s
    CGroup: /system.slice/sbbs.service
    └─1916244 /opt/synchronet/exec/sbbs d

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net