Re: [Iup-users] I switched to over Linux
Brought to you by:
scuri
From: Anonymous <ano...@gm...> - 2023-05-29 13:11:00
|
On 5/29/23 02:22, sur-behoffski wrote: Wow, sur-behoffski! You went through a lot of work to create that project. Good job! Looking at all the replies to this, I think I need to apologize to everyone. I should have been more specific in what I was asking for, but I was afraid to because I was afraid of what people would think of me if I told them what I was doing. But I guess I have no choice... I write assembly so all my programs are written in assembly (GoAsm/GoLink for Windows and NASM/ld/ar for Linux). So go ahead and hate me. Are you finished? Ok, I install nothing because there is no need to install anything on an assembly level. Everything I need is in the DLLs and (hopefully) SOs. So when I say that ld (which is the linker part of GCC) reports libcdlua53.so has an undefined reference to 'lua_newuserdata', I have no idea (yet) why ld would look for data or a function that I'm not using, not even indirectly that I'm aware of. So what is lua_newuserdata? What functions use it? I didn't know which of the lua SOs I need so I included all of them, but deleting the reference to libcdlua creates a different error, and deleting that include leads to another error so I deleted all reference to any lua libraries. Now everything links. But I do have a program I haven't translated to Linux yet that uses the built-in Lua IDE, so I will run that and see what dependencies it says I need, instead of guessing. If the issue occurs again then, I will bring it up again then. I use IupMatrixEx, so to see it missing worries me. Is it actually missing or is it not supported in Linux? Maybe I shouldn't worry? I see freetype for Windows, and I'm betting that was to make IUP portable because freetype (or its equivalent) is built-in to Linux and Mac. But I need to be sure in case I do have to "install" something on my own that I didn't have to do in Windows. Nothing is a show-stopper here, I just need more info. Signed, Andrew > On 5/28/23 23:59, Anonymous wrote: >> Hello, >> >> I am completely abandoning Windows and moving over to Linux, so now I >> have beginner questions even though I've used IUP for many years now. I >> am recompiling/reassembling all my old source code from Windows to run >> on Linux and I have a few minor issues: >> >> 1) ld reports libcdlua53.so has an undefined reference to >> 'lua_newuserdata'. How do I fix this? >> >> 2) I compared the old Windows DLLs to the new Linux SOs, and I see a few >> DLLs that appear to not have an equivalent SO: >> freetype6.dll >> iupmatrixex.dll >> iupole.dll >> >> My guess is that freetype or anything OLE isn't required on Linux, and >> I'm hoping that iupmatrixex is incorporated into some other SO, because >> it would be very bad if Linux doesn't support matrixex. >> >> Signed, >> Andrew >> >> ╔═════════════════════╗ >> ║ Environment ║ >> ╟─────────────────────╢ >> ║ IUP v3.30 ║ >> ║ IM v3.12 ║ >> ║ CD v5.11.1 ║ >> ║ Mx Linux v21.3║ >> ║ KDE_x64 Wildflower ║ >> ╚═════════════════════╝ > G'day Andrew, > > I've been trying to expand the scope of the Tecgraf IM/CD/IUP > scientific/technical programs on GNU/Linux, past the "Ubuntu" > instructions that was the only support mentioned in the documentation. > > I've created a project on SourceForge called "lglicua": > > l - Lua > gl - GNU/Linux > icu - IM/CD/IUP > a - Assistant > > that strives to ease the pain of installing Lua, LuaRocks, > selected Rocks needed by the Assistant, obtaining the latest > IM/CD/IUP sources from SourceForge via "svn co" (note that > IUP 3.30 was released in August 2020, and the last Subversion > revision was in November 2022). > > So, the Subversion sources are a better set of files to be working > with, as many bug fixes have been applied, but have not been > packaged up into a recent release. IM and CD also have updates, > but are not as active as IUP. > > ---- > > My latest release of "lglicua", lglicua-0.1-alpha7.tar.gz, does > support MX GNU/Linux 21, 21.1 and 21.2... but not 21.3. I > encountered compilation and linking errors similar to the ones > you reported. > > The good new is, I've found and fixed the problem, and intend to > release a new version of lglicua, -0.1-alpha8, this week. > > ---- > > The main problem is with the file "tecmake.mak" in each of IM/CD/IUP's > root directories (the same file, labelled 4.21, is copied into all > projects). tecmake.mak tries to separate "newer" systems from "older" > ones for various library/other choices, and this is a bit of an art, > rather than being a science. Also, the file tries to cover a slightly > obscene number of software/hardware platforms, and tries to normalise > everything so that coders in subdirectories have a simple and sane > environment to work with. > > GTK2/GTK3 is one problem area, but let's look at another, fontconfig: > Here's the 4.21 version, along with my rewritten (4.30) version: > > -- > > ifneq ($(findstring Linux26g4, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > ifneq ($(findstring Linux3, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > ifneq ($(findstring Linux4, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > ifneq ($(findstring Linux5, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > ifneq ($(findstring cygw, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > ifneq ($(findstring MacOS, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > > -- > > # Refine fontconfig: Cater for Linux Kernels greater than 5. > ifeq (Linux, $(TEC_SYSNAME)) > ifneq ($(findstring Linux26g4, $(TEC_UNAME)), ) > LIBS += fontconfig > else ifneq ($(filter 3 4 5 6 7 8 9, $(TEC_SYSVERSION)), ) > LIBS += fontconfig > endif > else ifneq ($(findstring cygw, $(TEC_UNAME)), ) > LIBS += fontconfig > else ifneq ($(findstring MacOS, $(TEC_UNAME)), ) > LIBS += fontconfig > endif > > -- > > Another example in tecmake.mak is WebKit: > > -- > > ifdef LINK_WEBKIT > ifneq ($(findstring Linux5, $(TEC_UNAME)), ) > LIBS += webkit2gtk-4.0 gio-2.0 > else > ifneq ($(findstring Linux4, $(TEC_UNAME)), ) > LIBS += webkit2gtk-4.0 gio-2.0 > else > ifneq ($(findstring Linux3, $(TEC_UNAME)), ) > ifdef USE_GTK3 > LIBS += webkitgtk-3.0 > else > LIBS += webkitgtk-1.0 > endif > else > LIBS += webkit-1.0 > endif > endif > endif > endif > > -- > > ifdef LINK_WEBKIT > # By default, library "webkit-1.0" is used by the linker. > TEC_WEBKIT_LIBS := webkit-1.0 > > # For Linux Kernels 4.x and above, override default, and use > # "webkit2gtk-4.0 gio-2.0". > # For Linux Kernels 3.x, override default, and use either > # "webkitgtk-3.0" or "webkitgtk-1.0", based on the USE_GTK3 setting. > ifeq (Linux, $(TEC_SYSNAME)) > # Provide WebKit for Linux Kernels 4 and later. > ifneq ($(filter 4 5 6 7 8 9, $(TEC_SYSVERSION)), ) > TEC_WEBKIT_LIBS := webkit2gtk-4.0 gio-2.0 > else ifneq ($(findstring Linux3, $(TEC_UNAME)), ) > ifdef USE_GTK3 > TEC_WEBKIT_LIBS := webkitgtk-3.0 > else > TEC_WEBKIT_LIBS := webkitgtk-1.0 > endif > endif > endif > > # Now add the derived librar(ies) to the library list. > LIBS += $(TEC_WEBKIT_LIBS) > endif > > -- > > ======== > > I hope to release the next version of lglicua, 0.1-alpha8, within the > next day or so. When you use the Assistant to perform a build, it > stomps on the tecmake.mak provided by the Subversion repository with > a copy that contains fixes such as the ones above, and I have verified > that it compiles, links and runs under MX Linux 21.3. > > (Another file, iup/srcweb/config.mak, is also stomped on if an IUP > build is attempted, for the same lack-of-Kernel-6 logic.) > > ======== > > Hope this helps, > > sur-behoffski (Brenton Hoff) > programmer, Grouse Software > > > > > _______________________________________________ > Iup-users mailing list > Iup...@li... > https://lists.sourceforge.net/lists/listinfo/iup-users |