-rdynamic is fine. This means put all symbols on the dynamic symbol table. The problem is -r, which means do a partial link. Some linkers do too much of one and prevent the final link from correctly placing everything in the correct sections.
David > On 13 Jan 2020, at 00:05, Patryk Laurent <[email protected]> wrote: > > Hi, > > On December 29, 2019 at 6:21 AM, David Chisnall <[email protected]> > wrote: > >> On 29 Dec 2019, at 13:16, Fred Kiefer <[email protected]> wrote: >>> >>>> 2019-12-29 00:35:39.702 ProjectCenter[10666:10666] NSDocumentClass >>>> PCProjectDocument not found >> >> Is this project using ld -r (I forget what GNUstep Make calls this - >> subprojects?)? If so, it may be the same issue as Base Additions, which >> can’t be linked with BFD LD. >> >> David > > On January 6, 2020 at 3:48 AM, David Chisnall <[email protected]> > wrote: > >> On 05/01/2020 16:15, Patryk Laurent wrote: >>> Do you think the bug is also is in ld.gold? During build, we set >>> LD=/usr/bin/ld.gold (for >>> example,https://github.com/plaurent/gnustep-build/blob/master/ubuntu-19.10-clang-9.0-runtime-2.0/GNUstep-buildon-ubuntu1910.sh#L46) >> >> Is $LD actually used to build? Most of the time, $CC is invoked as the >> linker, so you need -fuse-ld=gold in the LDFLAGS. >> >> David > > While building ProjectCenter I see the use of clang -rdynamic, it looks like > it's coming in from gnustep-config --objc-libs. Is this the "-r" you were > mentioning before, and may be causing the problem with the > frameworks/subprojects and resource bundle loading? > > Should we try to find some way to disable it? What is the recommended way to > do this? > > Best, > Patryk > > > clang -shared -Wl,-soname,libProjectCenter.so.0 -rdynamic > -fuse-ld=/usr/bin/ld.gold -L/usr/local/lib -pthread -fexceptions -o > ./ProjectCenter.framework/Versions/0.6.2/./libProjectCenter.so.0.6.2 obj/ > ProjectCenter.obj/NSFramework_ProjectCenter.o > obj/ProjectCenter.obj/PCBundleManager.m.o > obj/ProjectCenter.obj/PCEditorManager.m.o > obj/ProjectCenter.obj/PCMakefileFactory.m.o > obj/ProjectCenter.obj/PCFileManager.m.o obj/ > ProjectCenter.obj/PCAddFilesPanel.m.o obj/ProjectCenter.obj/PCFileCreator.m.o > obj/ProjectCenter.obj/ PCSaveModified.m.o > obj/ProjectCenter.obj/PCProjectManager.m.o > obj/ProjectCenter.obj/PCProject.m.o obj/ > ProjectCenter.obj/PCProjectWindow.m.o > obj/ProjectCenter.obj/PCProjectInspector.m.o obj/ProjectCenter.obj/ > PCProjectBuilder.m.o obj/ProjectCenter.obj/PCProjectBuilderOptions.m.o > obj/ProjectCenter.obj/ PCProjectBuilderPanel.m.o > obj/ProjectCenter.obj/PCProjectLauncher.m.o obj/ProjectCenter.obj/ > PCProjectLauncherPanel.m.o obj/ProjectCenter.obj/PCProjectEditor.m.o > obj/ProjectCenter.obj/PCProjectBrowser.m.o > obj/ProjectCenter.obj/PCProjectLoadedFiles.m.o > obj/ProjectCenter.obj/PCProjectLoadedFilesPanel.m.o obj/ > ProjectCenter.obj/PCButton.m.o obj/ProjectCenter.obj/PCFileNameField.m.o > obj/ProjectCenter.obj/PCFileNameIcon.m.o > obj/ProjectCenter.obj/PCLogController.m.o > obj/ProjectCenter.obj/PCAuxiliaryWindow.m.o -L../ > ProjectCenter/./obj -L/home/patryk/GNUstep/Library/Libraries > -L/usr/GNUstep/Local/Library/Libraries > -L/usr/GNUstep/System/Library/Libraries -lobjc -lgnustep-base -lgnustep-gui > > > clang -shared -rdynamic -fuse-ld=/usr/bin/ld.gold -L/usr/local/lib -pthread > -fexceptions -o ./ProjectCe > nter.debugger/./ProjectCenter ./obj/ProjectCenter.obj/PCDebugger.m.o > ./obj/ProjectCenter.obj/PCDebuggerView.m. > o ./obj/ProjectCenter.obj/PipeDelegate.m.o > -L../../../Framework/ProjectCenter.framework/. -L/home/patryk/ > GNUstep/Library/Libraries -L/usr/GNUstep/Local/Library/Libraries > -L/usr/GNUstep/System/Library/Libraries > -lgnustep-gui -lgnustep-base -lpthread -lobjc -lm > > > clang -rdynamic -fuse-ld=/usr/bin/ld.gold -L/usr/local/lib -pthread > -fexceptions -fobjc-runtime=gnuste > p-2.0 -fblocks -o ProjectCenter.app/./ProjectCenter \ > ./obj/ProjectCenter.obj/PCAppController.m.o > ./obj/ProjectCenter.obj/PCInfoController.m.o > ./obj/ProjectCenter.obj/PCMenuController.m.o > ./obj/ProjectCenter.obj/PCPrefController.m.o > ./obj/ProjectCenter.obj/ProjectCenter_main.m.o > -L./Framework/ProjectCenter.framework/. > -L/home/patryk/GNUstep/Library/Libraries > -L/usr/GNUstep/Local/Library/Libraries > -L/usr/GNUstep/System/Library/Libraries -lProjectCenter -lgnustep-gui > -lgnustep-base -lpthread -lobjc -lm > > > >
