commit: 0481a659e4c0c6dd9db7ee37f439cde7c76bc8c2 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Wed May 28 22:26:34 2025 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Wed May 28 22:30:54 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0481a659
app-emulation/vice: Upstream patch to fix linking with lld or mold Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> .../vice/files/vice-3.9-dupe-symbols.patch | 214 +++++++++++++++++++++ app-emulation/vice/vice-3.9.ebuild | 7 +- 2 files changed, 220 insertions(+), 1 deletion(-) diff --git a/app-emulation/vice/files/vice-3.9-dupe-symbols.patch b/app-emulation/vice/files/vice-3.9-dupe-symbols.patch new file mode 100644 index 000000000000..d96edd09dff2 --- /dev/null +++ b/app-emulation/vice/files/vice-3.9-dupe-symbols.patch @@ -0,0 +1,214 @@ +https://sourceforge.net/p/vice-emu/code/45435/ + +--- vice/src/Makefile.am ++++ vice/src/Makefile.am +@@ -594,6 +594,7 @@ + resid_lib = $(top_builddir)/src/resid/libresid.a + resid_dtv_lib = $(top_builddir)/src/resid-dtv/libresiddtv.a + rs232drv_lib = $(top_builddir)/src/rs232drv/librs232drv.a ++rs232drvpet_lib = $(top_builddir)/src/rs232drv/librs232drvpet.a + raster_lib = $(top_builddir)/src/raster/libraster.a + rtc_lib = $(top_builddir)/src/core/rtc/librtc.a + samplerdrv_lib = $(top_builddir)/src/samplerdrv/libsamplerdrv.a +@@ -631,7 +632,7 @@ + # external libraries required for all emulators + emu_extlibs = @UI_LIBS@ @SDL_EXTRA_LIBS@ @SOUND_LIBS@ @JOY_LIBS@ @GFXOUTPUT_LIBS@ @ZLIB_LIBS@ @DYNLIB_LIBS@ @ARCH_LIBS@ $(archdep_lib) $(linenoise_ng_lib) + +-driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(rs232drv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib) ++driver_libs = $(joyport_lib) $(samplerdrv_lib) $(sounddrv_lib) $(mididrv_lib) $(socketdrv_lib) $(hwsiddrv_lib) $(gfxoutputdrv_lib) $(printerdrv_lib) $(diskimage_lib) $(fsdevice_lib) $(tape_lib) $(fileio_lib) $(serial_lib) $(core_lib) + + if SUPPORT_X64 + x64_bin = x64 +@@ -716,6 +717,7 @@ + $(sid_lib) \ + $(monitor_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(vicii_lib) \ + $(raster_lib) \ + $(userport_lib) \ +@@ -773,6 +775,7 @@ + $(sid_lib) \ + $(monitor_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(viciisc_lib) \ + $(raster_lib) \ + $(userport_lib) \ +@@ -895,6 +898,7 @@ + $(sid_lib) \ + $(monitor_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(viciisc_lib) \ + $(raster_lib) \ + $(userport_lib) \ +@@ -954,6 +958,7 @@ + $(sid_lib) \ + $(monitor_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(vicii_lib) \ + $(vdc_lib) \ + $(raster_lib) \ +@@ -1011,6 +1016,7 @@ + $(monitor_lib) \ + $(sid_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(raster_lib) \ + $(userport_lib) \ + $(diag_lib) \ +@@ -1063,6 +1069,7 @@ + $(monitor_lib) \ + $(sid_lib) \ + $(driver_libs) \ ++ $(rs232drvpet_lib) \ + $(crtc_lib) \ + $(raster_lib) \ + $(video_lib) \ +@@ -1122,6 +1129,7 @@ + $(monitor_lib) \ + $(sid_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(raster_lib) \ + $(rtc_lib) \ + $(video_lib) \ +@@ -1180,6 +1188,7 @@ + $(monitor_lib) \ + $(sid_lib) \ + $(driver_libs) \ ++ $(rs232drvpet_lib) \ + $(crtc_lib) \ + $(raster_lib) \ + $(video_lib) \ +@@ -1236,6 +1245,7 @@ + $(xcbm5x0_lib) \ + $(sid_lib) \ + $(driver_libs) \ ++ $(rs232drv_lib) \ + $(vicii_lib) \ + $(raster_lib) \ + $(rtc_lib) \ +@@ -1540,8 +1550,11 @@ + @echo "making all in printerdrv" + @(cd printerdrv && $(MAKE)) + $(rs232drv_lib): +- @echo "making all in rs232drv" +- @(cd rs232drv && $(MAKE)) ++ @echo "making librs232drv.a in rs232drv" ++ @(cd rs232drv && $(MAKE) librs232drv.a) ++$(rs232drvpet_lib): ++ @echo "making librs232drvpet.a in rs232drv" ++ @(cd rs232drv && $(MAKE) librs232drvpet.a) + $(raster_lib): + @echo "making libraster.a in raster" + @(cd raster && $(MAKE) libraster.a) +--- vice/src/c64/Makefile.am ++++ vice/src/c64/Makefile.am +@@ -216,8 +216,6 @@ + c64fastiec.h \ + c64keyboard.c \ + c64keyboard.h \ +- c64parallel.c \ +- c64parallel.h \ + c64rom.c \ + c64rom.h \ + c64romset.c \ +--- vice/src/c64dtv/c64dtv.c ++++ vice/src/c64dtv/c64dtv.c +@@ -89,7 +89,6 @@ + #include "protopad.h" + #include "ps2mouse.h" + #include "resources.h" +-#include "rs232drv.h" + #include "rushware_keypad.h" + #include "sampler.h" + #include "sampler2bit.h" +@@ -422,10 +421,12 @@ + init_resource_fail("sid"); + return -1; + } ++#if 0 + if (rs232drv_resources_init() < 0) { + init_resource_fail("rs232drv"); + return -1; + } ++#endif + if (serial_resources_init() < 0) { + init_resource_fail("serial"); + return -1; +@@ -528,7 +529,9 @@ + flash_trap_resources_shutdown(); + c64dtv_resources_shutdown(); + c64dtvmem_resources_shutdown(); ++#if 0 + rs232drv_resources_shutdown(); ++#endif + printer_resources_shutdown(); + drive_resources_shutdown(); + fsdevice_resources_shutdown(); +@@ -562,10 +565,12 @@ + init_cmdline_options_fail("sid"); + return -1; + } ++#if 0 + if (rs232drv_cmdline_options_init() < 0) { + init_cmdline_options_fail("rs232drv"); + return -1; + } ++#endif + if (serial_cmdline_options_init() < 0) { + init_cmdline_options_fail("serial"); + return -1; +@@ -712,8 +717,10 @@ + return -1; + } + ++#if 0 + /* Initialize RS232 handler. */ + rs232drv_init(); ++#endif + + /* Initialize print devices. */ + printer_init(); +@@ -798,8 +805,9 @@ + ciacore_reset(machine_context.cia2); + sid_reset(); + ++#if 0 + rs232drv_reset(); +- ++#endif + printer_reset(); + + /* FIXME */ +--- vice/src/rs232drv/Makefile.am ++++ vice/src/rs232drv/Makefile.am +@@ -14,7 +14,7 @@ + AM_LDFLAGS = @VICE_LDFLAGS@ + + +-noinst_LIBRARIES = librs232drv.a ++noinst_LIBRARIES = librs232drv.a librs232drvpet.a + + librs232drv_a_SOURCES = \ + rs232dev.h \ +@@ -26,3 +26,16 @@ + rs232net.h \ + rsuser.c \ + rsuser.h ++ ++# Same as above, but without the userport bits, to avoid registering userport ++# resources and command line options with xpet and xcbm2 (these have stubs for ++# rsuser_resources_init() and rsuser_cmdline_init() ++librs232drvpet_a_SOURCES = \ ++ rs232dev.h \ ++ rs232.c \ ++ rs232.h \ ++ rs232drv.c \ ++ rs232drv.h \ ++ rs232net.c \ ++ rs232net.h \ ++ rsuser.h diff --git a/app-emulation/vice/vice-3.9.ebuild b/app-emulation/vice/vice-3.9.ebuild index 5c3544d42fbd..e610db321239 100644 --- a/app-emulation/vice/vice-3.9.ebuild +++ b/app-emulation/vice/vice-3.9.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit multibuild toolchain-funcs xdg +inherit autotools multibuild toolchain-funcs xdg DESCRIPTION="Versatile Commodore Emulator" HOMEPAGE="https://vice-emu.sourceforge.io/" @@ -77,6 +77,10 @@ BDEPEND=" gtk? ( x11-misc/xdg-utils ) " +PATCHES=( + "${FILESDIR}"/${P}-dupe-symbols.patch +) + pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } @@ -87,6 +91,7 @@ pkg_setup() { src_prepare() { default + eautoreconf # Strip the predefined C(XX)FLAGS. sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
