> On Aug 17, 2019, at 9:58 AM, Pascal <p....@orange.fr> wrote: > >> >> Le 15 août 2019 à 23:52, John Ralls <jra...@ceridwen.us> a écrit : >> >>> On Aug 15, 2019, at 1:02 PM, Pascal <p....@orange.fr> wrote: >>> >>> Hello, >>> >>> I've got linker errors with my program which use ncurses. >>> Previously it link against librairies in /usr/lib from Apple developper >>> tools. >>> But since Command Line Tools (HS 10.13), I got: >>> Undefined symbols for architecture x86_64: >>> "_current_item", referenced from: >>> _terminal_interface__curses__menus__current in >>> terminal_interface-curses-menus.o >>> "_free_item", referenced from: >>> _terminal_interface__curses__menus__delete in >>> terminal_interface-curses-menus.o >>> terminal_interface__curses__menus(float, long double,...)(...) in >>> terminal_interface-curses-menus.o >>> "_free_menu", referenced from: >>> _terminal_interface__curses__menus__delete__2 in >>> terminal_interface-curses-menus.o >>> <...> >>> "_top_row", referenced from: >>> _terminal_interface__curses__menus__top_row in >>> terminal_interface-curses-menus.o >>> (maybe you meant: _terminal_interface__curses__menus__top_row, >>> _terminal_interface__curses__menus__set_top_row ) >>> "_unpost_menu", referenced from: >>> _terminal_interface__curses__menus__post in >>> terminal_interface-curses-menus.o >>> ld: symbol(s) not found for architecture x86_64 >>> collect2: error: ld returned 1 exit status >>> >>> Like the lib menu is not seen for x86_64, but it seems to be ok: >>> >>> $ otool -vf /usr/lib/libmenu.dylib >>> Fat headers >>> fat_magic FAT_MAGIC >>> nfat_arch 2 >>> architecture x86_64 >>> cputype CPU_TYPE_X86_64 >>> cpusubtype CPU_SUBTYPE_X86_64_ALL >>> capabilities 0x0 >>> offset 4096 >>> size 36064 >>> align 2^12 (4096) >>> architecture i386 >>> cputype CPU_TYPE_I386 >>> cpusubtype CPU_SUBTYPE_I386_ALL >>> capabilities 0x0 >>> offset 40960 >>> size 35488 >>> align 2^12 (4096) >>> >>> It's really a pity that some libraries coming from Apple fail :-( >>> I was advised to build the library from source >>> https://invisible-island.net/ncurses. >>> Though it is available with other building systems, I aim to get it via >>> gtk-osx. >>> What is the best way to add it? >> >> Pascal, >> >> It's strange enough that something is still using curses in 2019, but >> stranger still that it uses curses and Gtk. > > Yes it looks strange ;-) > I build a set of Ada libraries based on GTK, ncurses and many others: > https://hermes.gwu.edu/cgi-bin/wa?A2=ind1809&L=GNAT-OSX&P=68 > >> Anyway, the direct answer to your question is to just add it to your local >> module set just like any other library that you need. > > I've added ncurses in a moduleset: > <repository type="tarball" name="ftp.invisible-island.net" > href="ftp://ftp.invisible-island.net/"/> > <autotools id="ncurses" > autogenargs="--enable-pc-files --without-tests"> > <branch repo="ftp.invisible-island.net" > module="ncurses/ncurses.tar.gz" > version="6.1" > checkoutdir="ncurses-6.1"/> > </autotools> > > But I need the Ada compiler to be on PATH, I've added it to my PATH but when > I do jhbuild it isn't present anymore! > How to transfert the Ada compiler path to jhbuild? > >> But first make sure that the symbols really are missing, they're present in >> 10.14: >> $ Manjusri:/Users/john> nm /usr/lib/libmenu.5.4.dylib | grep _unpost_menu >> 000000000000379a T _unpost_menu >> $ Manjusri:/Users/john> nm /usr/lib/libmenu.5.4.dylib | grep _current_item >> 00000000000024cd T _current_item >> 000000000000240d T _set_current_item >> $ Manjusri:/Users/john> nm /usr/lib/libmenu.5.4.dylib | grep _free_item >> 000000000000269c T _free_item >> $ Manjusri:/Users/john> nm /usr/lib/libmenu.5.4.dylib | grep _free_menu >> 0000000000002c2a T _free_menu >> $ Manjusri:/Users/john> nm /usr/lib/libmenu.5.4.dylib | grep _top_row >> 0000000000002913 T _set_top_row >> 00000000000029da T _top_row >> >> It's libncurses 5.4 released in 2004, meaning that Apple has probably not >> changed it since MacOS X 10.2 or so. ISTM it's more likely that you've got >> the wrong link order than that libmenu is missing all of its symbols. > > So mine does: > $ nm /usr/lib/libmenu.5.4.dylib | grep _current_item > 00000000000023bd T _current_item > 00000000000022ee T _set_current_item > > Symbols are present but not seen for x86_64. > Well, I took libmenu.5.4.dylib from an old Snow Leopard macOS with linking > success. > The difference between both is that the older one has PPC symbols. > Maybe Apple has stripped out PPC symbols and make it wrong I guess.
No PPC from 10.7 and no i386 from 10.13, so if the symbols are there they're x86_64. Your link order is screwed up, just fix that. As for the path, jhbuildrc exposes addpath and prependpath, see https://developer.gnome.org/jhbuild/unstable/config-reference.html.en. Regards, John Ralls _______________________________________________ gtk-osx-users-list mailing list gtk-osx-users-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-osx-users-list