Re: NSURL breaks libs-base building
Riccardo Mottola <[email protected]>
| Newsgroups | gmane.comp.lib.gnustep.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Patrick! Patrick Cardona wrote: > Hi Riccardo, > Hi Richard, :-) it makes me smile > - Building GNUstep (last Runtime 2.1 with clang-14 and linker gold) works fine the first time on a fresh updated lite system (Debian Bookworm 12.12) - I am using a set of scripts inspired by Patryck Laurent: namely his tip about Libdispatch (removing some headers related to Blocks before building libobjc2). I needed also to install cmake 4 because the debian default release is outdated. So after the first pass all seems ok (no errors in the logs). > > - The side effect of the above method is that the GNUstep tools-make are built and installed several times: if you try to install again the whole GNUstep on the same system, weird things begin to happen and the build process will fail (too many errors in the logs. One reason seems that the PATH to cmake 4 ($HOME/.local/bin) which was right the first time was overriden in the following attempts. I am also guessing about the last GNUstep.sh sourced which may not be accurate to rebuild... > - I added a test to warn the user about this risk. But what if another script fails - and really I need often to iterate. So if we cannot reinstall GNUstep, maybe a removing method should be necessary. I remove the building folders, use a dirty 'sudo rm -fR /usr/GNUstep'... I clean also ~/GNUstep, ~/.bashrc, log out and log in again. I wonder of this issue. I have few installation using libobjc2 because it is troublesome for me and doesn't compile out-of-the-box or fails to work properly on several OS-Architectures combination I use. However in GCC environments I have no issue "reinstalling" tools-make several times! I often do only incremental builds (make && make install in make, base, gui, back) and it works. I source GNUstep.sh "before" installing make. > > About the matter to build only with gcc, I am very very curious: I was never able to make the new ABI (objc2, runtime >= 2) with only gcc. Do you mean you don't install libdispatch/objc2 and you only use the old ABI (runtime 1.9)? Is the last release of GWorkspace building on this runtime? Yes, latest GWorkspace and all software I maintain works with GCC runtime. It uses threads and processes directly. libdispatch is needed directly if GCD is used. I don't know though if in case of GCD presence "normal" threads change. Richard or other more base experts can tell you perhaps. > I have a multicore proc (`nproc` returns 4 on the pi 400) so I wonder if we loose the multithreading hability without Libdispatch and if it is a matter of performance. > Could you please tell us your building environment settings with only gcc and the config args you use for each GNUstep lib? I don't precisely know of performance when using one or the other, but using threads and processes GWorkspace will exploit multi-core or multi-CPU setups. With gcc the setup should be very simple, the only changes are in make and base to make sure the gnu-gnu-gnu runtime is selected and GCC is used. Should be picked up by default My setup on Linux is: make: /configure --with-layout=gnustep --prefix=/ base, gui, back: "configure" gcc and runtime get picked up automatically for me. On OpenBSD where clang is the default compiler to "coerence" it to use GCC I do: For make: configure --with-layout=gnustep --with-library-combo=gnu-gnu-gnu CC=egcc CXX=eg++ The rest base, gui, back should be just plain configure && make Riccardo