[FFmpeg-devel] PIC and YASM

Reimar Döffinger Reimar.Doeffinger
Sun Nov 8 15:27:16 CET 2009

On Sun, Nov 08, 2009 at 01:47:20PM +0000, M?ns Rullg?rd wrote:
> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
> > Hello,
> > I have been trying to figure out some compilation issues with hardened
> > gentoo on AMD64 and they all come down to YASM.
> > Several issues:
> > -DPIC is and must be added explicitly to the yasm flags.
> > in particular:
> > --enable-pic will not add -DPIC to YASMFLAGS, nor will the enable_pic
> > function. --enable-shared will though.
> That's easy to fix.  Does this work better?

Probably, though why not just put it in the enable_pic function?
(x86inc.asm will unset it by itself where it is not supported)
I also suspect that my proposal will allow to get rid of that
"enable pic" hack for OpenBSD and the macho64 special-case.
Not to mention the Haiku/Zeta case that just looks very strange,
if not to say wrong (adding -DPIC but not doing enable_pic?).
However that darwin case means the check would have to be done earlier
(to get -mdynamic-no-pic):
Index: configure
--- configure   (revision 20469)
+++ configure   (working copy)
@@ -1876,6 +1876,7 @@
 enable $arch $subarch
 enabled spic && enable pic
+check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic
 # OS specific
 case $target_os in
@@ -2103,6 +2104,7 @@
     add_cppflags -DPIC
     add_cflags   -fPIC
     add_asflags  -fPIC
+    append YASMFLAGS "-DPIC"
 enabled pic && enable_pic
@@ -2231,7 +2233,6 @@
     YASMFLAGS="-f $objformat -DARCH_$(toupper $subarch)"
     enabled     x86_64        && append YASMFLAGS "-m amd64"
-    enabled_all x86_64 shared && append YASMFLAGS "-DPIC"
     case "$objformat" in
         elf) enabled debug && append YASMFLAGS "-g dwarf2" ;;
         macho64)              append YASMFLAGS "-DPIC -DPREFIX" ;;

More information about the ffmpeg-devel mailing list