Re: [Iup-users] Problem linking with scintilla
Brought to you by:
scuri
From: Anonymous <ano...@gm...> - 2023-07-24 17:42:35
|
Thanks for that link but there was no accepted answer to that question. Looking it over I could see why: because the answers were very vague and mostly incorrect. So I did a little more homework and this is what I am going to pretend is the answer: The __dso_handle is a hidden global pointer to the current address where the next destructor_ptr of a *.so file to be unloaded by the OS will be stored. It could be defined anywhere but most likely should be in the _fini section of the GCC's crtbegin files -- which I don't use, hence I have to define it myself in my own code. That seemed to resolve the compiling problem.Whether it works or not is another issue altogether :) https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib---cxa-atexit.html https://www.ic.unicamp.br/~islene/2s2008-mo806/libc/csu/dso_handle.c https://alex-robenko.gitbook.io/bare_metal_cpp/compiler_output/static On 7/24/23 09:21, Antonio Scuri wrote: > Try this one: > > https://stackoverflow.com/questions/34308720/where-is-dso-handle-defined > > Em seg., 24 de jul. de 2023 11:15, Anonymous > <ano...@gm...> escreveu: > > Mucho gracias Antonio! You are so patient too! I am down to six > errors I think, but it seems every time I fix one set of errors, a > new set of errors pop up. I really don't know how to read "ld" > yet, but what do you think of the following errors: > > ld: ./lib/libiup_scintilla.a(ExternalLexer.o): in function > `_GLOBAL__sub_I_ExternalLexer.cxx': > ExternalLexer.cxx:(.text.startup+0x19): undefined reference to > `__dso_handle' > ld: ExternalLexer.cxx:(.text.startup+0x37): undefined reference to > `__dso_handle' > ld: ./lib/libiup_scintilla.a(CaseConvert.o): in function > `_GLOBAL__sub_I_CaseConvert.cxx': > CaseConvert.cxx:(.text.startup+0x8): undefined reference to > `__dso_handle' > ld: CaseConvert.cxx:(.text.startup+0x93): undefined reference to > `__dso_handle' > ld: CaseConvert.cxx:(.text.startup+0x11f): undefined reference to > `__dso_handle' > ld: > ./lib/libiup_scintilla.a(LexAda.o):LexAda.cxx:(.text.startup+0x44): > more undefined references to `__dso_handle' follow > > Which additional library(s) do I need to add now (I'm currently at > 19!!)? > > On 7/24/23 05:38, Antonio Scuri wrote: >> IupScintilla is C only, but Scintilla itself is not. >> >> Em qua., 19 de jul. de 2023 às 16:14, Anonymous >> <ano...@gm...> escreveu: >> >> I was down to 8,518 errors, but then I noticed something: >> >> ScintillaGTK.cxx:(.text+0x22c0): undefined reference to >> `operator new(unsigned long)' >> ld: ./lib/libiup_scintilla.a(ScintillaGTK.o): in function >> `Scintilla::ScintillaGTK::RequestSelection(_GdkAtom*)': >> >> There are a lot of those kinds of errors which seems to >> indicated that libiup_scintilla.a was compiled as a C++ >> program and not a C program. I thought IUP was supposed to be >> C-only and not a mix? Is there a C-only version of >> libiup_scintilla.a that I can download somewhere? >> >> On 7/18/23 13:31, Anonymous wrote: >>> >>> Thanks for the advice. I already use the L switch for >>> linking to all the IUP *.a files, i.e. -- *-L./lib*. That >>> works fine for all files except for libiup_scintilla.a. For >>> that you are telling me I need to link to specific files in >>> GTK3. It seems to me GTK3 isn't meant to be called directly >>> by programs, only by the OS (hence the reason it isn't in >>> the $PATH), so I temporarily add the GTK3 directory to my >>> path and then linked to them ... except that doesn't work. >>> The (Debian) system says there is no libgtk-3, which when I >>> go and look for it, there is only libgtk-3.so.0 which (to >>> me) looks like a symbolic link, so I have to change >>> *-lgtk-3* to *-l:libgtk-3.so.0* and so on and so forth for >>> all 12 files the documentation listed: *-l:libgdk-3.so.0 >>> -l:libgdk_pixbuf-2.0.so.0 -l:libpangocairo-1.0.so.0 >>> -l:libpango-1.0.so.0 -l:libcairo.so.2 -l:libgobject-2.0.so.0 >>> -l:libgmodule-2.0.so.0 -l:libglib-2.0.so.0 -l:libXext.so.6 >>> -l:libX11.so.6 -l:libm.so.6*. Now it links to them but >>> unfortunately, this leads to a new problem, namely: >>> >>> *ld: ./lib/libiup_scintilla.a(ScintillaGTKAccessible.o): >>> undefined reference to symbol 'atk_object_notify_state_change'** >>> **ld: /lib/x86_64-linux-gnu/libatk-1.0.so.0: error adding >>> symbols: DSO missing from command line* >>> >>> Now what do I do? >>> >>> PS -- There is a typo in the doc: *gdk-3* should have been >>> *-lgdk-3* >>> PPS -- Look at that huge, gigantic command line! This is >>> far, far easier to do in Windows than it is in Linux. >>> >>> On 7/17/23 05:56, Antonio Scuri wrote: >>>> -L/my_path/iup/lib/Linux >>>> >>>> Em seg., 17 de jul. de 2023 às 09:04, Anonymous >>>> <ano...@gm...> escreveu: >>>> >>>> On 7/17/23 04:49, Antonio Scuri wrote:There is no >>>> libscintilla.a so I am stuck with libscintilla.so >>>>> There is no sense in using GTK 2 anymore for recent >>>>> systems. Focus on GTK 3. >>>> >>>> Yes sir, I understand. I will focus only on GTK3 from >>>> now on. >>>> >>>> The problem I'm see is, none of the files mentioned in >>>> the IUP documentation for static linking are visible, >>>> even with GTK3 installed. How can I make the files >>>> visible from the current working directory my source >>>> code is in? >>>> >>>>> Em sáb., 15 de jul. de 2023 às 17:52, Anonymous >>>>> <ano...@gm...> escreveu: >>>>> >>>>> Note, the documentation says to use -lpangox-2.0, >>>>> but their is no libpangox-2.0.so >>>>> <http://libpangox-2.0.so> file that exists in the >>>>> GTK2 or GTK3 directory. Was it supposed to say >>>>> -lpangoxft-1.0 or -lpangomm-1.4.so >>>>> <http://lpangomm-1.4.so> or -lpangocairo-1.0.so.0? >>>>> >>>>> On 7/15/23 13:06, Anonymous wrote: >>>>>> My problem is why won't GTK show up in my path, >>>>>> even though the system works with GTK apps? Is >>>>>> that normal? I could copy all the files needed to >>>>>> a directory for static linking as >>>>>> https://www.tecgraf.puc-rio.br/iup/ says to do, >>>>>> >>>>>> "For GTK, IUP uses the GTK, GDK, Pango, Cairo if >>>>>> GTK 3, and GLib. To *statically* link an >>>>>> application with IUP, use the following options >>>>>> in the linker call (in the same order) ... >>>>>> >>>>>> *-lgtk-x11-2.0 -lgdk-x11-2.0* -lgdk_pixbuf-2.0*-lpangox-1.0* -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXext -lX11 -lm (for GTK 2) >>>>>> or >>>>>> *-lgtk-3 gdk-3* -lgdk_pixbuf-2.0*-lpangocairo-1.0* -lpango-1.0*-lcairo* -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXext -lX11 -lm (for GTK 3)" >>>>>> >>>>>> ... but do I really have to copy files from root >>>>>> to a place where it can be found by my make file? >>>>>> That doesn't make sense but if that is how things >>>>>> are done in Linux, I will just have to do it. I >>>>>> just hope those files are easy to find. >>>>>> >>>>>> On 7/15/23 12:31, Antonio Scuri wrote: >>>>>>> Please take a look at the IUP documentation. >>>>>>> You will find more info there: >>>>>>> >>>>>>> https://www.tecgraf.puc-rio.br/iup/ >>>>>>> >>>>>>> In Guide / Building Applications >>>>>>> >>>>>>> Best, >>>>>>> Scuri >>>>>>> >>>>>>> >>>>>>> Em sáb., 15 de jul. de 2023 às 12:54, Anonymous >>>>>>> <ano...@gm...> escreveu: >>>>>>> >>>>>>> One last follow-up... >>>>>>> >>>>>>> If I go to >>>>>>> https://packages.debian.org/bullseye/amd64/libgtk2.0-0/filelist, >>>>>>> it shows me where the GTK files are located >>>>>>> for Debian based systems. Why isn't this in >>>>>>> the PATH? Why do I have GTK programs that >>>>>>> work if it isn't in the PATH? Does that mean >>>>>>> I have to link to the GTK library using a >>>>>>> hard-coded path? That's a problem since that >>>>>>> means that since Debian doesn't follow the >>>>>>> standard Linux filesystem hierarchy standard >>>>>>> (which says GTK should be installed in >>>>>>> /usr/lib/ and not >>>>>>> /usr/lib/x86_64-linux-gnu/) if I hard-code >>>>>>> the path name in the linker for GTK, it will >>>>>>> only work for Debian systems. >>>>>>> >>>>>>> For being so user friendly, MX Linux sure is >>>>>>> developer unfriendly. >>>>>>> >>>>>>> On 7/15/23 08:29, Anonymous wrote: >>>>>>>> >>>>>>>> That's a typo. It actually says it has both >>>>>>>> installed but I can't find either one on my >>>>>>>> computer. >>>>>>>> >>>>>>>> On 7/15/23 08:23, Anonymous wrote: >>>>>>>>> >>>>>>>>> Ola, >>>>>>>>> >>>>>>>>> Much thanks Antonio! I went from 13381 >>>>>>>>> errors to two, but these two errors look >>>>>>>>> ominous... >>>>>>>>> >>>>>>>>> ld: ./lib/libiup.a(iupgtk_toggle.o): >>>>>>>>> undefined reference to symbol >>>>>>>>> 'gtk_toggle_button_new' >>>>>>>>> ld: >>>>>>>>> /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0: >>>>>>>>> error adding symbols: DSO missing from >>>>>>>>> command l >>>>>>>>> ine >>>>>>>>> >>>>>>>>> Is that one error or two? My system does >>>>>>>>> not have a file named libgtk-x11-2.0.0, so >>>>>>>>> I tried... >>>>>>>>> >>>>>>>>> |dpkg -l libgtk* | grep -e '^i' | grep -e >>>>>>>>> 'libgtk-*[0-9]' and it returned... |ii libgtk-3-0:amd64 3.24.24-4+deb11u3 amd64 GTK graphical user interface library >>>>>>>>> ii libgtk-3-common 3.24.24-4+deb11u3 all common files for the GTK graphical user interface library >>>>>>>>> ii libgtk2.0-0:amd64 2.24.33-2 amd64 GTK graphical user interface library - old version >>>>>>>>> ii libgtk2.0-common 2.24.33-2 all common files for the GTK graphical user interface library >>>>>>>>> ii libgtk3-perl 0.038-1 all Perl bindings for the GTK+ graphical user interface library >>>>>>>>> || >>>>>>>>> >>>>>>>>> Oops! It looks like IUP will only work >>>>>>>>> with GTK2 and that says I have GTK3, >>>>>>>>> right? Is there any workaround for that or >>>>>>>>> am I screwed? >>>>>>>>> >>>>>>>>> Signed, >>>>>>>>> Andrew >>>>>>>>> >>>>>>>>> On 7/15/23 05:50, Antonio Scuri wrote: >>>>>>>>>> The scintilla library itself is missing. >>>>>>>>>> IupScintilla is IUP using Scintilla. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Em sáb., 15 de jul. de 2023 às 09:43, >>>>>>>>>> Anonymous <ano...@gm...> >>>>>>>>>> escreveu: >>>>>>>>>> >>>>>>>>>> Ola, >>>>>>>>>> >>>>>>>>>> I'm still new to Linux so forgive me >>>>>>>>>> if I ask what might be stupid >>>>>>>>>> questions. I cannot link to scintilla >>>>>>>>>> using IUP. I get a slew of error >>>>>>>>>> like this: >>>>>>>>>> >>>>>>>>>> ld: >>>>>>>>>> ./lib/libiup_scintilla.a(ScintillaGTK.o): >>>>>>>>>> in function >>>>>>>>>> `Scintilla::ScintillaGTK::ModifyScrollBars(long, >>>>>>>>>> long)': >>>>>>>>>> ScintillaGTK.cxx:(.text+0x70d): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_get_upper' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x737): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_get_page_size' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x77b): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_upper' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x790): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_page_size' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x7a6): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_page_increment' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x7da): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_get_upper' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x81a): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_get_page_size' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x855): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_upper' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x86a): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_page_size' >>>>>>>>>> ld: ScintillaGTK.cxx:(.text+0x87f): >>>>>>>>>> undefined reference to >>>>>>>>>> `gtk_adjustment_set_page_increment' >>>>>>>>>> >>>>>>>>>> And etc, etc, etc for 13381 lines. >>>>>>>>>> >>>>>>>>>> I presume that means a dependency is >>>>>>>>>> missing but what dependency would >>>>>>>>>> that be? Or it might be something >>>>>>>>>> else? Does anyone know? >>>>>>>>>> >>>>>>>>>> Signed, >>>>>>>>>> Andrew >>>>>>>>>> >>>>>>>>>> ╔═════════════════════╗ >>>>>>>>>> ║ Environment ║ >>>>>>>>>> ╟─────────────────────╢ >>>>>>>>>> ║ IUP v3.30 ║ >>>>>>>>>> ║ IM v3.12 ║ >>>>>>>>>> ║ CD v5.11.1 ║ >>>>>>>>>> ║ Mx Linux v21.3 ║ >>>>>>>>>> ║ KDE_x64 Wildflower ║ >>>>>>>>>> ╚═════════════════════╝ >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Iup-users mailing list >>>>>>>>>> Iup...@li... >>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Iup-users mailing list >>>>>>>>>> Iup...@li... >>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>> _______________________________________________ >>>>>>> Iup-users mailing list >>>>>>> Iup...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Iup-users mailing list >>>>>>> Iup...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/iup-users >>>>> |