From 3441db2f4366273ea4bf6f00b663b95344ea40a0 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Fri, 16 Feb 2018 01:11:53 -0800 Subject: Add ability to build ffmpeg and libass into PIEs --- ninja.lua | 4 ++++ pkg/ffmpeg/gen.lua | 10 ++++++---- pkg/libass/gen.lua | 8 +++++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ninja.lua b/ninja.lua index 137c9974..96148ee9 100644 --- a/ninja.lua +++ b/ninja.lua @@ -238,6 +238,10 @@ function cflags(flags) set('cflags', '$cflags '..table.concat(flags, ' ')) end +function nasmflags(flags) + set('nasmflags', '$nasmflags '..table.concat(flags, ' ')) +end + function compile(rule, src, deps, args) local obj = src..'.o' if not src:hasprefix('$') then diff --git a/pkg/ffmpeg/gen.lua b/pkg/ffmpeg/gen.lua index f6ca6e68..c8e38dc5 100644 --- a/pkg/ffmpeg/gen.lua +++ b/pkg/ffmpeg/gen.lua @@ -1,5 +1,4 @@ local arch = 'x86' - cflags{ '-Wno-deprecated-declarations', '-Wno-discarded-qualifiers', @@ -11,14 +10,17 @@ cflags{ '-I $builddir/pkg/alsa-lib/include', '-I $builddir/pkg/libressl/include', } - -set('nasmflags', { +nasmflags{ '-i $srcdir/', '-i $srcdir/libavcodec/'..arch..'/', '-i $srcdir/libavutil/'..arch..'/', '-f elf64', '-P $outdir/config.asm', -}) +} +if config.target.pie then + cflags{'-D PIC'} + nasmflags{'-D PIC'} +end build('awk', '$outdir/config.asm', '$dir/options.h', { expr=[['{print "%define " substr($$0, length("#define ") + 1)}']], diff --git a/pkg/libass/gen.lua b/pkg/libass/gen.lua index 8a1f0a58..473633a2 100644 --- a/pkg/libass/gen.lua +++ b/pkg/libass/gen.lua @@ -3,15 +3,17 @@ cflags{ '-I pkg/freetype/src/include', '-I $builddir/pkg/fribidi/include', } - -set('nasmflags', { +nasmflags{ '-D ARCH_X86_64=1', '-D HAVE_ALIGNED_STACK=1', '-D HAVE_CPUNOP=0', '-D private_prefix=ass', '-i $srcdir/libass/', '-f elf64', -}) +} +if config.target.pie then + nasmflags{'-D PIC'} +end pkg.hdrs = copy('$outdir/include/ass', '$srcdir/libass', {'ass.h', 'ass_types.h'}) pkg.deps = { -- cgit v1.2.3