Hi Przemek,
Okay, I tried to enable -fpic it for linux/gcc .so files.
It's enough to add 'HB_DYN_COPT := -fpic' line to config/linux/gcc.mk
Now the problem is again with hbpp_dyn.o. I'd like to
avoid adding -DHB_DYNLIB also for linux/gcc (in addition
to -fpic), besides being unelegant I'm not sure what
side-effects it may have on non-win. Any idea how to solve
this problem the best way?
Can't we somehow cleanup that hbpp build rule in some
ways?
Brgds,
Viktor
On 2009.09.11., at 20:22, Przemyslaw Czerpak wrote:
On Fri, 11 Sep 2009, Szak�ts Viktor wrote:
Hi Przemek and all,
Any opinion on this?
We can stated that '-fpic' or '-fPIC' is necessary for 'so'-es. The
'-fpic' generates a smaller and faster code as it is stated in
http://people.redhat.com/drepper/dsohowto.pdf.
If the '-fpic' doesn't work for a huge 'so' code it, will be
signaled by
gcc in its linking time, is not the case on my test distributions.
The build time is not so long on my linux systems, so the method
proposed
by Viktor is plausible [Sorry, I lost this info or I can't realize
the
interdependencies]. The other proposal is to use '-fpic' or '-
fPIC' [-fpic
my option] as default and optionally without, is maybe the easiest
IMO.
In practice in all builds we need separate compilation for shared
library.
On some platforms/CPUs modules compiled without switches to force
position
independent code can work in some limited way but sooner or later they
creates troubles so we should always use switches to force PIC for
modules
used to create shared library.
The difference between -fPIC and -fpic is platform/CPU dependent.
Usually -fpic introduce smaller overhead then -fPIC with the cost of
some limitations, like smaller symbol table or maximum code side
though there are platforms where there is not difference between
them or where both are ignored because generated code is always
position independent. Limits introduced by -fpic should be verified
at link time but on some platforms they may depends also on other
libraries so it's safer for general distributions to use -fPIC.
But such decision should be taken by developers working with
given platform/CPUs. We can use for some architectures -fPIC and
on some others -fpic as default settings. We can also start with
-fpic and then switch to -fPIC when user reports problems just like
now we are increasing page side in some library tools.
best regards,
Przemek
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour