logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 3441db2f4366273ea4bf6f00b663b95344ea40a0
parent e741f39ad218e529fdb69e3c877ad809ad62b35f
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 16 Feb 2018 01:11:53 -0800

Add ability to build ffmpeg and libass into PIEs

Diffstat:

Mninja.lua4++++
Mpkg/ffmpeg/gen.lua10++++++----
Mpkg/libass/gen.lua8+++++---
3 files changed, 15 insertions(+), 7 deletions(-)

diff --git 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 @@ -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 @@ -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 = {