diff --git a/Makefile.ps3 b/Makefile.ps3 index c2c7a0ed84..021d386036 100644 --- a/Makefile.ps3 +++ b/Makefile.ps3 @@ -17,6 +17,7 @@ HAVE_LOGGER = 0 HAVE_FREETYPE = 0 HAVE_RLAUNCH = 0 PERF_TEST = 0 +WHOLE_ARCHIVE_LINK = 0 CONTENT_ID_FULL = UP0001-SSNE10000_00-0000000000000001 CONTENT_ID = SSNE10000 @@ -99,7 +100,12 @@ ifneq($(system_platform), win) PPU_CCLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe endif -PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) -lretro_ps3 -lcgc -lgcm_cmdasm -lgcm_sys_stub -lresc_stub -lm -lio_stub -lfs_stub -lsysutil_stub -lsysutil_game_stub -lsysutil_screenshot_stub -lsysutil_np_stub -lpngdec_stub -ljpgdec_stub -lsysmodule_stub -laudio_stub -lnet_stub -lnetctl_stub -lpthread +ifeq ($(WHOLE_ARCHIVE_LINK), 1) +WHOLE_START := -Wl, --whole-archive +WHOLE_END := -Wl, --no-whole-archive +endif + +PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) $(WHOLE_START) -lretro_ps3 $(WHOLE_END) -lcgc -lgcm_cmdasm -lgcm_sys_stub -lresc_stub -lm -lio_stub -lfs_stub -lsysutil_stub -lsysutil_game_stub -lsysutil_screenshot_stub -lsysutil_np_stub -lpngdec_stub -ljpgdec_stub -lsysmodule_stub -laudio_stub -lnet_stub -lnetctl_stub -lpthread PPU_RANLIB = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ranlib.exe diff --git a/dist-scripts/ps3-cores-cex-355.sh b/dist-scripts/ps3-cores-cex-355.sh index f83d9fc3b1..cdd4b8de44 100755 --- a/dist-scripts/ps3-cores-cex-355.sh +++ b/dist-scripts/ps3-cores-cex-355.sh @@ -11,8 +11,13 @@ EXE_PATH=/usr/local/cell/host-win32/bin for f in *_ps3.a ; do name=`echo "$f" | sed 's/\(_libretro\|\)_ps3.a$//'` + whole_archive= + if [ $name = "nxengine" ] ; then + whole_archive="WHOLE_ARCHIVE_LINK=1" + echo $name yes + fi cp -f "$f" ../libretro_ps3.a - make -C ../ -f Makefile.ps3 -j3 || exit 1 + make -C ../ -f Makefile.ps3 $whole_archive -j3 || exit 1 make_self_wc ../retroarch_ps3.elf ../CORE.SELF mv -f ../CORE.SELF ../ps3/pkg/USRDIR/cores/"$name.SELF" rm -f ../retroarch_ps3.elf ../retroarch_ps3.self ../CORE.SELF diff --git a/dist-scripts/ps3-cores-dex.sh b/dist-scripts/ps3-cores-dex.sh index e66528d564..b787172f81 100755 --- a/dist-scripts/ps3-cores-dex.sh +++ b/dist-scripts/ps3-cores-dex.sh @@ -13,8 +13,13 @@ MAKE_PACKAGE_NPDRM=$EXE_PATH/make_package_npdrm.exe for f in *_ps3.a ; do name=`echo "$f" | sed 's/\(_libretro\|\)_ps3.a$//'` + whole_archive= + if [ $name = "nxengine" ] ; then + whole_archive="WHOLE_ARCHIVE_LINK=1" + echo $name yes + fi cp -f "$f" ../libretro_ps3.a - make -C ../ -f Makefile.ps3 -j3 || exit 1 + make -C ../ -f Makefile.ps3 $whole_archive -j3 || exit 1 $MAKE_FSELF_NPDRM ../retroarch_ps3.elf ../CORE.SELF mv -f ../CORE.SELF ../ps3/pkg/USRDIR/cores/"$name.SELF" rm -f ../retroarch_ps3.elf ../retroarch_ps3.self ../CORE.SELF