Thank you, I'll repeat tests soon.
I forgot to write about yet another thing. -Wl, GCC switch
redirects rest of command to linker. Such functionality like
library grouping is linker not compiler part so if it works
in GCC Linux builds then it should work also with other compilers
which use system linker. Both ICC and SunProC use system linker
and even understand -Wl, switch so you can use library grouping
also with these compilers.
You're right. I'll add it to all places where ld is used.
Now note about stripping. It's not good idea to strip unconditionally
debug information inside make install. Some systems like RPMs can
detect
debug data during creating final packages, extract them from base
binaries and libraries and store into separate *-debug.rpm. If user
needs to debug some internals, i.e. he want to see C call stack
using valgrind then he can simply install such RPMs. Stripping
debug information without an option to control it we are loosing
such functionality.
Personally I always used to install libraries with debug information
and strip only my final binaries. When sth is wrong seeing C call
stack with full information in tools like GDB or valgrind greatly
helps to locate the problem. In the past we also used to ask users
to send to us such C call stack information. Now everyone who wants
to use debug information have to install harbour manually just after
pure build phase.
I think that stripping should be enabled only on user request, i.e.
using HB_STRIP={all,lib,bin} envvar. Now we do not enable full debug
information in default builds (-g is disabled) so stripping is not
such important as it was and overhead is minimal - only basic
information
for some trace tools like GDB/VALGRIND to not lose the context.
Using HB_BUILD_DEBUG does not resolve the problem because these switch
causes that different binaries are created.
Please also add ${HB_CCPATH} to strip command:
${HB_CCPATH}${HB_CCPREFIX}strip ..
Okay, point taken. I agree with HB_BUILD_STRIP=[all|lib|bin|no],
with default 'no'.
Detection of system location in *nixes and enabling shared mode
needs additional modifications. But here we have more then one
problem mixed together and I have to rethink all of them before
I'll present some propositions.
Okay, thanks in advance.
One note from my TODO list: HB_BUILD_SHARED should use versionless
.so names in *nix just like in hbmk2. Although these are links, so
install/clean of links should also be completed inside GNU Make.
Brgds,
Viktor
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour