ports/74045: maintainer-update: multimedia/transcode: unbreak on recent GCCs

Hendrik Scholz hendrik at scholz.net
Wed Nov 17 16:40:33 UTC 2004

>Number:         74045
>Category:       ports
>Synopsis:       maintainer-update: multimedia/transcode: unbreak on recent GCCs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 17 16:40:16 GMT 2004
>Originator:     Hendrik Scholz
>Release:        FreeBSD 6.0-CURRENT i386
Freenet Cityline GmbH

FreeBSD zoidberg.freenet-ag.de 6.0-CURRENT FreeBSD 6.0-CURRENT #0: Wed Nov 17 09:02:02 CET 2004     hscholz at zoidberg.freenet-ag.de:/usr/src/sys/i386/compile/ZOIDBERG  i386

transcode doesn't compile on recent -current systems due to gcc changes.
It will complain about unknown symbols ff_pw_20 and ff_pw_3 while linking.

The fix has been provided on the transcode mailinglist by Peter Knaggs.


Try to make transcode in /usr/ports/multimedia/transcode
The error will happen in ffmpeg/libavcodec

Save as files/patch-ffmpeg:libavcodec:i386:dsputil_mmx.c

--- ffmpeg/libavcodec/i386/dsputil_mmx.c.orig	Wed Nov 17 17:30:15 2004
+++ ffmpeg/libavcodec/i386/dsputil_mmx.c	Wed Nov 17 17:30:33 2004
@@ -31,8 +31,8 @@
 static const uint64_t mm_wone __attribute__ ((aligned(8))) = 0x0001000100010001ULL;
 static const uint64_t mm_wtwo __attribute__ ((aligned(8))) = 0x0002000200020002ULL;
-static const uint64_t ff_pw_20 __attribute__ ((aligned(8))) = 0x0014001400140014ULL;
-static const uint64_t ff_pw_3  __attribute__ ((aligned(8))) = 0x0003000300030003ULL;
+static const uint64_t ff_pw_20 __attribute__ ((aligned(8), used)) = 0x0014001400140014ULL;
+static const uint64_t ff_pw_3  __attribute__ ((aligned(8), used)) = 0x0003000300030003ULL;
 static const uint64_t ff_pw_16 __attribute__ ((aligned(8))) = 0x0010001000100010ULL;
 static const uint64_t ff_pw_15 __attribute__ ((aligned(8))) = 0x000F000F000F000FULL;
Save as files/patch-ffmpeg:libavcodec:i386:motion_est_mmx.c

--- ffmpeg/libavcodec/i386/motion_est_mmx.c.orig	Wed Nov 17 17:31:38 2004
+++ ffmpeg/libavcodec/i386/motion_est_mmx.c	Wed Nov 17 17:31:47 2004
@@ -26,7 +26,7 @@
-static __attribute__ ((aligned(8), unused)) uint64_t bone= 0x0101010101010101LL;
+static __attribute__ ((aligned(8), used)) uint64_t bone= 0x0101010101010101LL;
 static inline void sad8_mmx(uint8_t *blk1, uint8_t *blk2, int stride, int h)

Save as files/patch-ffmpeg:libavcodec:i386:simple_idct_mmx.c

--- ffmpeg/libavcodec/i386/simple_idct_mmx.c.orig	Wed Nov 17 17:32:21 2004
+++ ffmpeg/libavcodec/i386/simple_idct_mmx.c	Wed Nov 17 17:32:37 2004
@@ -45,8 +45,8 @@
 #define ROW_SHIFT 11
 #define COL_SHIFT 20 // 6
-static const uint64_t __attribute__((aligned(8))) wm1010= 0xFFFF0000FFFF0000ULL;
-static const uint64_t __attribute__((aligned(8))) d40000= 0x0000000000040000ULL;
+static const uint64_t __attribute__((aligned(8), used)) wm1010= 0xFFFF0000FFFF0000ULL;
+static const uint64_t __attribute__((aligned(8), used)) d40000= 0x0000000000040000ULL;
 static const int16_t __attribute__((aligned(8))) coeffs[]= {
 	1<<(ROW_SHIFT-1), 0, 1<<(ROW_SHIFT-1), 0,


More information about the freebsd-ports-bugs mailing list