Further PIE preparations: aircrack-ng and avidemux both use non-PIC optimised

assembler.  Wrap an #ifndef PIC around it.

ok naddy@
This commit is contained in:
pascal 2012-08-11 22:58:18 +00:00
parent 8fa00e5163
commit 2a05f2db9c
14 changed files with 287 additions and 7 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.36 2012/05/22 18:39:42 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.37 2012/08/11 22:58:18 pascal Exp $
COMMENT= free video editor
@ -6,7 +6,7 @@ V= 2.4.4
DISTNAME= avidemux_${V}
PKGNAME= avidemux-${V}
REVISION= 11
REVISION= 12
CATEGORIES= multimedia

View File

@ -1,6 +1,24 @@
$OpenBSD: patch-avidemux_ADM_libraries_ADM_libswscale_yuv2rgb_c,v 1.1 2008/03/19 09:21:37 ajacoutot Exp $
--- avidemux/ADM_libraries/ADM_libswscale/yuv2rgb.c.orig Mon Jan 7 09:23:59 2008
+++ avidemux/ADM_libraries/ADM_libswscale/yuv2rgb.c Mon Jan 7 09:24:33 2008
$OpenBSD: patch-avidemux_ADM_libraries_ADM_libswscale_yuv2rgb_c,v 1.2 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_libraries/ADM_libswscale/yuv2rgb.c.orig Tue Jul 17 20:49:16 2007
+++ avidemux/ADM_libraries/ADM_libswscale/yuv2rgb.c Fri Aug 10 18:48:29 2012
@@ -161,7 +161,7 @@ const uint8_t __attribute__((aligned(8))) dither_8x8_
};
#endif
-#ifdef HAVE_MMX
+#if defined(HAVE_MMX) && !defined(PIC)
/* hope these constant values are cache line aligned */
static uint64_t attribute_used __attribute__((aligned(8))) mmx_00ffw = 0x00ff00ff00ff00ffULL;
@@ -621,7 +621,7 @@ EPILOG(1)
SwsFunc yuv2rgb_get_func_ptr (SwsContext *c)
{
-#if defined(HAVE_MMX2) || defined(HAVE_MMX)
+#if (defined(HAVE_MMX2) || defined(HAVE_MMX)) && !defined(PIC)
if (c->flags & SWS_CPU_CAPS_MMX2){
switch(c->dstFormat){
case PIX_FMT_RGB32: return yuv420_rgb32_MMX2;
@@ -665,6 +665,9 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c)
switch(c->dstFormat){

View File

@ -0,0 +1,57 @@
$OpenBSD: patch-avidemux_ADM_libraries_ADM_utilities_ADM_imageUtils_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp.orig Fri Aug 10 18:45:14 2012
+++ avidemux/ADM_libraries/ADM_utilities/ADM_imageUtils.cpp Fri Aug 10 18:46:38 2012
@@ -60,7 +60,7 @@ int a1,a2;
return 1;
}
-#if defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
static uint8_t tinyAverageMMX(uint8_t *dst, uint8_t *src1, uint8_t *src2,uint32_t l)
{
int delta;
@@ -118,7 +118,7 @@ int a1,a2;
uint8_t ADMImage::merge(ADMImage *src1,ADMImage *src2)
{
-#if 1 && defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if 1 && (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
if(CpuCaps::hasMMX())
{
tinyAverageMMX(YPLANE(this),YPLANE(src1),YPLANE(src2),(_width*_height*3)>>1);
@@ -149,7 +149,7 @@ uint32_t ww,hh;
}
return df;
}
-#if defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
static uint64_t noise64 asm(MANGLE(noise64));
static uint32_t computeDiffMMX(uint8_t *s1,uint8_t *s2,uint32_t noise,uint32_t l)
{
@@ -239,7 +239,7 @@ uint32_t result=0;
uint32_t ADMImage::lumaDiff(ADMImage *src1,ADMImage *src2,uint32_t noise)
{
-#if 1 && defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if 1 && (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
uint32_t r1,r2;
if(CpuCaps::hasMMX())
{
@@ -279,7 +279,7 @@ int a1,a2;
}
return 1;
}
-#if defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
static uint8_t tinySubstractMMX(uint8_t *dst, uint8_t *src1, uint8_t *src2,uint32_t l)
{
int delta;
@@ -338,7 +338,7 @@ int ll,rr;
uint8_t ADMImage::substract(ADMImage *src1,ADMImage *src2)
{
-#if 1 && defined( ARCH_X86 ) || defined (ARCH_X86_64)
+#if 1 && (defined( ARCH_X86 ) || defined (ARCH_X86_64)) && !defined(PIC)
uint32_t r1,r2;
if(CpuCaps::hasMMX())
{

View File

@ -0,0 +1,28 @@
$OpenBSD: patch-avidemux_ADM_videoFilter_ADM_vidBlend_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_videoFilter/ADM_vidBlend.cpp.orig Fri Aug 10 18:41:01 2012
+++ avidemux/ADM_videoFilter/ADM_vidBlend.cpp Fri Aug 10 18:41:49 2012
@@ -39,6 +39,7 @@
#include "admmangle.h"
+#ifndef PIC
#ifdef ARCH_X86_64
static int64_t _l_w asm(MANGLE(_l_w)), _l_h asm(MANGLE(_l_h));
#else
@@ -46,6 +47,7 @@ static int32_t _l_w asm(MANGLE(_l_w)), _l_h asm(MANGLE
#endif
static uint8_t *_l_p asm(MANGLE(_l_p)), *_l_c asm(MANGLE(_l_c)), *_l_n asm(MANGLE(_l_n));
static uint8_t *_l_e asm(MANGLE(_l_e)), *_l_e2 asm(MANGLE(_l_e2));
+#endif
#define EXPAND(x) (x)+((x)<<16)+((x)<<32) +((x)<<48)
static uint64_t __attribute__((used)) _mmTHRESH1 asm(MANGLE(_mmTHRESH1)) =EXPAND((uint64_t )THRES1);
static uint64_t __attribute__((used)) full_ones asm(MANGLE(full_ones)) =0xFFFFFFFFFFFFFFFFLL;
@@ -79,7 +81,7 @@ uint32_t x,y;
}
}
}
-#if defined( ARCH_X86) || defined(ARCH_X86_64)
+#if defined( ARCH_X86) || defined(ARCH_X86_64) && !defined(PIC)
void ADMVideoFields::blend_MMX(uint8_t *p,uint8_t *c,
uint8_t *n,
uint8_t *e,

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-avidemux_ADM_videoFilter_ADM_vidDeintASM_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp.orig Fri Aug 10 18:42:31 2012
+++ avidemux/ADM_videoFilter/ADM_vidDeintASM.cpp Fri Aug 10 18:43:10 2012
@@ -37,7 +37,7 @@
#include"ADM_vidField.h"
-#if defined( ARCH_X86) || defined(ARCH_X86_64)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && !defined(PIC)
// #define DEBUG_DEINT 1
// #define MMX_TRACE 1
#include "ADM_video/mmx_macros.h"
@@ -94,7 +94,7 @@ int32_t val,x,y;
}
}
}
-#if defined( ARCH_X86) || defined(ARCH_X86_64)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && !defined(PIC)
void ADMVideoFields::hasMotion_MMX(uint8_t *p,uint8_t *c,
uint8_t *n,
uint8_t *e,

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-avidemux_ADM_videoFilter_ADM_vidFields_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_videoFilter/ADM_vidFields.cpp.orig Fri Aug 10 18:49:40 2012
+++ avidemux/ADM_videoFilter/ADM_vidFields.cpp Fri Aug 10 18:50:11 2012
@@ -118,7 +118,8 @@ uint8_t ADMVideoFields::hasMotion(ADMImage *image)
e2=_motionmask2+w;
//___________________ C version of motion detection ________________________
// other line
-#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_DEINT)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_DEINT) && \
+ !defined(PIC)
if(CpuCaps::hasMMX())
hasMotion_MMX(p,c,n,e,e2);
else
@@ -200,7 +201,8 @@ uint8_t ADMVideoFields::doBlend(ADMImage *src,ADMImage
n++;
c++;
}
-#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_BLEND)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_BLEND) && \
+ !defined(PIC)
if(CpuCaps::hasMMX())
blend_MMX(p,c,n,e2,f);
else

View File

@ -0,0 +1,22 @@
$OpenBSD: patch-avidemux_ADM_videoFilter_ADM_vidFlux_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_videoFilter/ADM_vidFlux.cpp.orig Fri Aug 10 18:40:08 2012
+++ avidemux/ADM_videoFilter/ADM_vidFlux.cpp Fri Aug 10 18:40:35 2012
@@ -275,7 +275,8 @@ ADMImage *image,*next,*prev;
nextp += src_pitch;
destp += dst_pitch;
- #if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_FLUX)
+ #if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_FLUX) \
+ && !defined(PIC)
if(CpuCaps::hasMMX())
{
DoFilter_MMX(currp, prevp, nextp, src_pitch,
@@ -403,7 +404,7 @@ void ADMVideoFlux::DoFilter_C(
ADM_assert(ycnt == 0);
}
-#if (defined( ARCH_X86) || defined(ARCH_X86_64))
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && !defined(PIC)
/*
__asm movq mm2, mm0 \
__asm movq mm3, mm1 \

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-avidemux_ADM_videoFilter_ADM_vidResampleFPS_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp.orig Fri Aug 10 18:38:45 2012
+++ avidemux/ADM_videoFilter/ADM_vidResampleFPS.cpp Fri Aug 10 18:39:11 2012
@@ -171,7 +171,7 @@ uint8_t ADMVideoResampleFPS::getCoupledConf( CONFcoupl
CSET(use_linear);
return 1;
}
-#if (defined( ARCH_X86) || defined(ARCH_X86_64))
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && !defined(PIC)
static uint64_t low asm(MANGLE(low)), high asm(MANGLE(high));
static void blendMMX(uint8_t *src, uint8_t *src2, uint8_t *dst, uint8_t alpha, uint8_t beta,uint32_t count)
{
@@ -319,7 +319,7 @@ uint8_t ADMVideoResampleFPS::getFrameNumberNoAlloc(uin
count = page;
-#if (defined( ARCH_X86) || defined(ARCH_X86_64))
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && !defined(PIC)
if(CpuCaps::hasMMX())
blendMMX(in1,in2,out,lowweight,highweight,(count*3)>>1);
else

View File

@ -0,0 +1,33 @@
$OpenBSD: patch-avidemux_ADM_video_ADM_interlaced_cpp,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- avidemux/ADM_video/ADM_interlaced.cpp.orig Fri Aug 10 18:43:45 2012
+++ avidemux/ADM_video/ADM_interlaced.cpp Fri Aug 10 18:44:34 2012
@@ -70,7 +70,8 @@ Skip factor=2
mm2 contains 4 bytes of n
*/
-#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING) && \
+ !defined(PIC)
static uint32_t ADMVideo_interlaceCount_MMX( uint8_t *src ,uint32_t w, uint32_t h);
static uint8_t *_l_p asm(MANGLE(_l_p)) =NULL;
@@ -111,7 +112,8 @@ static uint32_t ADMVideo_interlaceCount_C( uint8_
uint32_t ADMVideo_interlaceCount( uint8_t *src ,uint32_t w, uint32_t h)
{
-#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING) && \
+ !defined(PIC)
if(CpuCaps::hasMMX())
return ADMVideo_interlaceCount_MMX(src,w,h);
else
@@ -120,7 +122,8 @@ uint32_t ADMVideo_interlaceCount( uint8_t *src ,u
}
-#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING)
+#if (defined( ARCH_X86) || defined(ARCH_X86_64)) && defined(ASM_ILACING) && \
+ !defined(PIC)
uint32_t ADMVideo_interlaceCount_MMX( uint8_t *src ,uint32_t w, uint32_t h)
{
uint32_t m=0,y,x;

View File

@ -1,8 +1,8 @@
# $OpenBSD: Makefile,v 1.10 2012/04/23 17:15:18 espie Exp $
# $OpenBSD: Makefile,v 1.11 2012/08/11 22:58:18 pascal Exp $
COMMENT= 802.11 WEP and WPA-PSK keys cracking program
DISTNAME= aircrack-ng-1.1
REVISION= 5
REVISION= 6
CATEGORIES= security
HOMEPAGE= http://www.aircrack-ng.org/

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-src_aircrack-ng_c,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- src/aircrack-ng.c.orig Fri Apr 9 16:50:14 2010
+++ src/aircrack-ng.c Mon Jul 23 18:31:48 2012
@@ -3852,7 +3852,7 @@ int crack_wpa_thread( void *arg )
int i, j, len, slen;
int nparallel = 1;
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(PIC)
// Check for SSE2, with SSE2 the algorithm works with 4 keys
if (shasse2_cpuid()>=2)
nparallel = 4;
@@ -4626,7 +4626,7 @@ int main( int argc, char *argv[] )
case 'u' :
printf("Nb CPU detected: %d ", cpu_count);
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(PIC)
unused = shasse2_cpuid();
if (unused == 1) {

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_common_h,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- src/common.h.orig Mon Jul 23 18:27:36 2012
+++ src/common.h Mon Jul 23 18:27:57 2012
@@ -30,7 +30,7 @@
#define CPUID_SSE2_AVAILABLE 2
#define CPUID_NOTHING_AVAILABLE 0
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(PIC)
#define CPUID() shasse2_cpuid()
#else
#define CPUID() CPUID_NOTHING_AVAILABLE

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sha1-sse2_S,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- src/sha1-sse2.S.orig Mon Jul 23 18:26:22 2012
+++ src/sha1-sse2.S Mon Jul 23 18:26:39 2012
@@ -13,7 +13,7 @@
#define MANGLE(x) x
#endif
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(PIC)
.globl shasse2_init;
.globl shasse2_ends;

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sha1-sse2_h,v 1.1 2012/08/11 22:58:18 pascal Exp $
--- src/sha1-sse2.h.orig Mon Jul 23 18:26:45 2012
+++ src/sha1-sse2.h Mon Jul 23 18:28:41 2012
@@ -15,7 +15,7 @@
#include "crypto.h"
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(PIC)
void show_result(char* key, uchar* pmk)
{