-fPIC or -fpic?
Ruslan Ermilov
ru at FreeBSD.org
Thu Mar 18 23:35:30 PST 2004
On Fri, Mar 19, 2004 at 02:29:58PM +0900, Nakata Maho wrote:
> Dear all,
>
> obrien give me detailed explanation the difference
> -fpic and -fPIC (thanks!),
> however, as kris told me, we must test which is better.
> currently, it seems only for sparc64 -fPIC make sence,
> so, in /usr/share/mk/bsd.lib.mk, we find,
>
> .if !defined(PICFLAG)
> .if ${MACHINE_ARCH} == "sparc64"
> PICFLAG=-fPIC
> .else
> PICFLAG=-fpic
> .endif
> .endif
>
> this is a good choice.
>
> However, in the framework of ports, there's no way to do this since:
> % grep fPIC /usr/ports/Mk/bsd.*
> %
> % grep fpic /usr/ports/Mk/bsd.*
> %
>
> so I have to hardcode this, and I don't like to this.
> (see in math/atlas, math/atlas-devel, and biology/pymol)
>
> Otherwise, this patch (for example, math/atlas)
>
> @@ -49,13 +49,7 @@
> @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/alpha-patch)
> .endif
>
> -.if !defined(PICFLAG)
> -.if ${MACHINE_ARCH} == "sparc64"
> -PICFLAG=-fPIC
> -.else
> -PICFLAG=-fpic
> -.endif
> -.endif
> +.include <bsd.lib.mk>
>
>
> doesn't help me
> % make
> Warning: Object directory not changed from original /home/maho/work/ports/math/atlas
>
> Note:
> at least amd64, in some cases, we need -fpic or -fPIC when we make
> shared libraries. some programs don't set such flag when compiling as you know.
> in i386, we don't need -fpic to make shared lib, so we force to make
> shared lib from static ones, so this can be a big problem.
> at least in the ports, we need PICFLAG definiton.
>
> putting this in bsd.port.mk
> .if !defined(PICFLAG)
> .if ${MACHINE_ARCH} == "sparc64"
> PICFLAG=-fPIC
> .else
> PICFLAG=-fpic
> .endif
> .endif
>
> is not a good idea at all, since it doesn't sync with bsd.lib.mk.
> splitting bsd.lib.mk to bsd.lib.pic.mk that contains only this,
> then include at bsd.port.mk might be a better idea, but still dirty.
>
> How do I do?
>
PICFLAG!= ${MAKE} -f bsd.lib.mk -V PICFLAG
Cheers,
--
Ruslan Ermilov
FreeBSD committer
ru at FreeBSD.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20040319/59905953/attachment.bin
More information about the cvs-all
mailing list