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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.