[MPlayer-dev-eng] [PATCH] detect PIC and set -DPIC in YASMFLAGS
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sun Nov 8 09:17:31 CET 2009
On Sun, Nov 08, 2009 at 09:02:27AM +0100, Reimar Döffinger wrote:
> On Sun, Nov 08, 2009 at 05:03:02AM +0100, Diego Biurrun wrote:
> > On Sun, Nov 08, 2009 at 12:47:36AM +0100, Reimar Döffinger wrote:
> > > this is necessary to compile with YASM enabled on amd64 systems that
> > > have PIC/PIE enabled by default, e.g. hardened Gentoo.
> > > --- configure (revision 29850)
> > > +++ configure (working copy)
> > > @@ -2580,6 +2580,20 @@
> > >
> > > +echocheck "PIC"
> > > +pic=no
> > > +cat > $TMPC << EOF
> > > +int main(void) {
> > > +#if defined(__PIC__) || defined(__pic__) || defined(PIC)
> > > + return 0;
> > > +#else
> > > + error please!
> >
> > ?
>
> I thought it was obvious that it was supposed to make the compiler
> error out.
> Yes, for gcc #error works, but I think it is not part of the standard.
A variant more in line with other code (e.g. the kernel header version
check):
Index: configure
===================================================================
--- configure (revision 29850)
+++ configure (working copy)
@@ -2580,6 +2580,21 @@
cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
echores $ebx_available
+echocheck "PIC"
+pic=no
+cat > $TMPC << EOF
+int main(void) {
+#if defined(__PIC__) || defined(__pic__) || defined(PIC)
+ return 0;
+#else
+#error PIC not enabled
+ not_pic_code();
+#endif
+}
+EOF
+cc_check && pic=yes
+echores $pic
+
echocheck "yasm"
if test -z "$YASMFLAGS" ; then
if darwin ; then
@@ -2592,6 +2607,7 @@
# currently tested for Linux x86, x86_64
YASMFLAGS="-f $objformat"
x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
+ test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
case "$objformat" in
elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
More information about the MPlayer-dev-eng
mailing list