On Sun, Oct 06, 2024 at 02:31:48PM +0200, Chris Hofstaedtler wrote:
> On Sun, Aug 11, 2024 at 01:35:34PM +0200, Florian Ernst wrote:
> > With the attached minimized patch this tuxpaint version compiles again
> > with gcc-14. It seems this was first fixed upstream in 0.9.29, cf.
> > <https://sourceforge.net/p/tuxpaint/tuxpaint/ci/9d70b5837cc307e6c9fe80e6e7dcabf7750b1d45/>.
> > [...]
> 
> I tried applying this, but then later linking fails (at least on arm64):
> [...]

Thanks for checking! Well, while this worked for me in August I now get
a similar error on amd64:

| ...Linking Tux Paint...
| cc -Wdate-time -D_FORTIFY_SOURCE=2 -O0 -g -W -Wall -fno-common -ffloat-store 
-fvisibility=hidden -Wcast-align -Wredundant-decls -Wbad-function-cast 
-Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes 
-Wstrict-aliasing=2   -g -I/usr/include/SDL2 -D_REENTRANT  
-I/usr/include/fribidi  -DVER_DATE=\"2024-10-06\" -DVER_VERSION=\"0.9.28\" 
-DDATA_PREFIX=\"/usr/share/tuxpaint/\" 
-DDOC_PREFIX=\"/usr/share/doc/tuxpaint-0.9.28/\" 
-DLOCALEDIR=\"/usr/share/locale/\" -DIMDIR=\"/usr/share/tuxpaint/im/\" 
-DCONFDIR=\"/etc/tuxpaint/\" -DMAGIC_PREFIX=\"/usr/lib/tuxpaint/plugins/\"    
-DNO_SDLPANGO   \
|         -o tuxpaint obj/tuxpaint.o obj/i18n.o obj/im.o obj/cursor.o 
obj/pixels.o obj/rgblinear.o obj/playsound.o obj/fonts.o obj/parse.o obj/fill.o 
obj/progressbar.o obj/dirwalk.o obj/get_fname.o obj/onscreen_keyboard.o 
obj/gifenc.o obj/sounds.o obj/postscript_print.o \
|         -lSDL2  -lSDL2_image -lSDL2  -lSDL2_ttf -lSDL2  -lSDL2_gfx -lSDL2  
-lz  -lpng16  -lSDL2_mixer -lSDL2   
-L/usr/lib/x86_64-linux-gnu/pkgconfig/../../../lib/x86_64-linux-gnu -lrsvg-2 
-lcairo-gobject -lpng16 -ldav1d -lgdk_pixbuf-2.0 -lgio-2.0 -lxml2 
-lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lharfbuzz 
-lfontconfig -lfreetype -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 
-lglib-2.0 -lcairo  -lpaper -lfribidi  -limagequant
| /usr/bin/ld: obj/tuxpaint.o: undefined reference to symbol 
'round@@GLIBC_2.2.5'
| /usr/bin/ld: /lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO 
missing from command line
| collect2: error: ld returned 1 exit status

And indeed, in my previous attempt that linking still included "-lm"
which now is missing, explaining the error. Here the corresponding lines
from that attempt:

| ...Linking Tux Paint...
| cc -Wdate-time -D_FORTIFY_SOURCE=2 -O0 -g -W -Wall -fno-common -ffloat-store 
-fvisibility=hidden -Wcast-align -Wredundant-decls -Wbad-function-cast 
-Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes 
-Wstrict-aliasing=2   -g -I/usr/include/SDL2 -D_REENTRANT  
-I/usr/include/fribidi  -DVER_DATE=\"2024-08-11\" -DVER_VERSION=\"0.9.28\" 
-DDATA_PREFIX=\"/usr/share/tuxpaint/\" 
-DDOC_PREFIX=\"/usr/share/doc/tuxpaint-0.9.28/\" 
-DLOCALEDIR=\"/usr/share/locale/\" -DIMDIR=\"/usr/share/tuxpaint/im/\" 
-DCONFDIR=\"/etc/tuxpaint/\" -DMAGIC_PREFIX=\"/usr/lib/tuxpaint/plugins/\"    
-DNO_SDLPANGO   \
|         -o tuxpaint obj/tuxpaint.o obj/i18n.o obj/im.o obj/cursor.o 
obj/pixels.o obj/rgblinear.o obj/playsound.o obj/fonts.o obj/parse.o obj/fill.o 
obj/progressbar.o obj/dirwalk.o obj/get_fname.o obj/onscreen_keyboard.o 
obj/gifenc.o obj/sounds.o obj/postscript_print.o \
|         -lSDL2  -lSDL2_image -lSDL2  -lSDL2_ttf -lSDL2  -lSDL2_gfx -lSDL2  
-lz  -lpng16  -lSDL2_mixer -lSDL2   -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 
-lgobject-2.0 -lglib-2.0 -lcairo  -lpaper -lfribidi  -limagequant
| 
| --------------------------------------------------------------
| 
| Done compiling.

So, not only is "-lm" missing, but now there is a bunch of additional
libraries (Gnome?) present that wasn't there before, for whatever
reason. Hmmmm.

Cheers,
Flo

Attachment: signature.asc
Description: PGP signature

Reply via email to