aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authoredwin <edwin@FreeBSD.org>2003-09-01 11:55:04 +0800
committeredwin <edwin@FreeBSD.org>2003-09-01 11:55:04 +0800
commit79985e264b07cb0a5b591525a2cf226408636651 (patch)
tree67c3988befd643c792bc88bf25e4a77b06214269 /lang
parente2c60e1f14d71ac01e270ea0e1b429fd5ea18fa4 (diff)
downloadfreebsd-ports-gnome-79985e264b07cb0a5b591525a2cf226408636651.tar.gz
freebsd-ports-gnome-79985e264b07cb0a5b591525a2cf226408636651.tar.zst
freebsd-ports-gnome-79985e264b07cb0a5b591525a2cf226408636651.zip
lang/squeak3 creates $PREFIX/bin/squeak symlink to nowhere
Fix audio support for squeak3 Sound support comes to do squeak3(squeak-3.5) porting, but does not become effective because, actually, it cannot detect the library which I am going to utilize with stage of configure. PR: ports/46180,ports/53474 Submitted by: NINOMIYA Hideyuki <nin@Jp.FreeBSD.org>,parv <parv_fm@emailgroups.net>
Diffstat (limited to 'lang')
-rw-r--r--lang/squeak3/Makefile22
-rw-r--r--lang/squeak3/files/patch-platforms::Cross::plugins::Mpeg3Plugin::libmpeg::video::output.c290
-rw-r--r--lang/squeak3/files/patch-platforms::unix::config::configure17
3 files changed, 325 insertions, 4 deletions
diff --git a/lang/squeak3/Makefile b/lang/squeak3/Makefile
index ac371f22750b..f489191cafaf 100644
--- a/lang/squeak3/Makefile
+++ b/lang/squeak3/Makefile
@@ -7,6 +7,7 @@
PORTNAME= squeak
PORTVERSION= 3.5
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.5/ \
http://www-sor.inria.fr/~piumarta/squeak/unix/release/ \
@@ -21,7 +22,6 @@ COMMENT= Full Smalltalk 80 with portability to UNIX, Mac, and Windows
# Don't set USE_ZIP as this breaks EXTRACT_CMD, EXTRACT_SUFX, and what not.
BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
-LIB_DEPENDS+= audio.2:${PORTSDIR}/audio/nas
SQUEAK_VERSION= 3.4-1
SQUEAK_IMAGE_VERSION= 3.5
@@ -37,17 +37,27 @@ USE_XLIB= yes
USE_GMAKE= yes
USE_REINPLACE= yes
HAS_CONFIGURE= yes
-INSTALLS_SHLIB= yes
LDCONFIG_DIRS= ${PREFIX}/share/squeak/${SQUEAK_VERSION}
CONFIGURE_WRKSRC= ${WRKSRC}/build
INSTALL_WRKSRC= ${CONFIGURE_WRKSRC}
CONFIGURE_SCRIPT= ../platforms/unix/config/configure
-CONFIGURE_ARGS+= --libdir=${PREFIX}/share --with-audio
+CONFIGURE_ARGS+= --libdir=${PREFIX}/share
# don't pass "-s" to install to avoid trying to strip a shell script
CONFIGURE_ENV= INSTALL_PROGRAM="${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}"
BUILD_WRKSRC= ${WRKSRC}/build
DIST_SUBDIR= squeak
+.ifdef (WITHOUT_AUDIO)
+CONFIGURE_ARGS+= --without-audio
+.else
+LIB_DEPENDS+= audio.2:${PORTSDIR}/audio/nas
+CONFIGURE_ARGS+= --with-audio=nas
+.endif
+
+.ifdef (WITH_MMX)
+CONFIGURE_ARGS+= --enable-mpg-mmx
+.endif
+
MAKEFILE= Makefile
.ifdef (CC)
MAKE_ARGS+= CC=${CC}
@@ -75,7 +85,11 @@ post-install:
(cd ${PREFIX}/share/squeak && ${GZIP_CMD} ${file})
.endfor
# install inisqueak and change the build in version number on the fly
- ${SED} -e 's|VERSION=3.4-5170|VERSION=3.5-5180|' ${WRKSRC}/build/inisqueak > ${PREFIX}/bin/inisqueak
+ ${SED} \
+ -e 's|VERSION=3.4-5170|VERSION=3.5-5180|' \
+ -e 's|IMAGE=squeak|IMAGE=Squeak3.5-5180|' \
+ -e 's|CHANGES=squeak|CHANGES=Squeak3.5-5180|' \
+ ${WRKSRC}/build/inisqueak > ${PREFIX}/bin/inisqueak
${CHMOD} 755 ${PREFIX}/bin/inisqueak
${STRIP_CMD} ${PREFIX}/share/squeak/${SQUEAK_VERSION}/squeak
${CAT} ${PKGMESSAGE}
diff --git a/lang/squeak3/files/patch-platforms::Cross::plugins::Mpeg3Plugin::libmpeg::video::output.c b/lang/squeak3/files/patch-platforms::Cross::plugins::Mpeg3Plugin::libmpeg::video::output.c
new file mode 100644
index 000000000000..f5fa1f0bd1a1
--- /dev/null
+++ b/lang/squeak3/files/patch-platforms::Cross::plugins::Mpeg3Plugin::libmpeg::video::output.c
@@ -0,0 +1,290 @@
+--- platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c.orig Sun Aug 31 20:43:57 2003
++++ platforms/Cross/plugins/Mpeg3Plugin/libmpeg/video/output.c Sun Aug 31 20:45:36 2003
+@@ -261,38 +261,38 @@
+ unsigned long v,
+ unsigned long *output)
+ {
+-asm("
+-/* Output will be 0x00rrggbb with the 00 trailing so this can also be used */
+-/* for bgr24. */
+- movd (%0), %%mm0; /* Load y 0x00000000000000yy */
+- movd (%1), %%mm1; /* Load u 0x00000000000000cr */
+- movq %%mm0, %%mm3; /* Copy y to temp */
+- psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */
+- movd (%2), %%mm2; /* Load v 0x00000000000000cb */
+- psllq $16, %%mm3; /* Shift y */
+- movq %%mm1, %%mm4; /* Copy u to temp */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */
+- psllq $16, %%mm4; /* Shift u */
+- movq %%mm2, %%mm5; /* Copy v to temp */
+- psllq $16, %%mm3; /* Shift y */
+- por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */
+- psllq $16, %%mm5; /* Shift v */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */
+- por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */
+- psubw _mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */
+- pmullw _mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */
+- psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */
+- psubw _mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */
+- pmullw _mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */
+- paddsw %%mm1, %%mm0; /* Add u to result */
+- paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */
+- psraw $6, %%mm0; /* Demote precision */
+- packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */
+- movd %%mm0, (%3); /* Store output */
++asm(" \
++/* Output will be 0x00rrggbb with the 00 trailing so this can also be used */ \
++/* for bgr24. */ \
++ movd (%0), %%mm0; /* Load y 0x00000000000000yy */ \
++ movd (%1), %%mm1; /* Load u 0x00000000000000cr */\
++ movq %%mm0, %%mm3; /* Copy y to temp */\
++ psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */\
++ movd (%2), %%mm2; /* Load v 0x00000000000000cb */\
++ psllq $16, %%mm3; /* Shift y */\
++ movq %%mm1, %%mm4; /* Copy u to temp */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */\
++ psllq $16, %%mm4; /* Shift u */\
++ movq %%mm2, %%mm5; /* Copy v to temp */\
++ psllq $16, %%mm3; /* Shift y */\
++ por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */\
++ psllq $16, %%mm5; /* Shift v */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */\
++ por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */\
++ psubw _mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */\
++ pmullw _mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */\
++ psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */\
++ psubw _mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */\
++ pmullw _mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */\
++ paddsw %%mm1, %%mm0; /* Add u to result */\
++ paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */\
++ psraw $6, %%mm0; /* Demote precision */\
++ packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */\
++ movd %%mm0, (%3); /* Store output */\
+ "
+ :
+ : "r" (&y), "r" (&u), "r" (&v), "r" (output));
+@@ -303,39 +303,39 @@
+ unsigned long v,
+ unsigned long *output)
+ {
+-asm("
+-/* Output will be 0x00rrggbb with the 00 trailing so this can also be used */
+-/* for bgr24. */
+- movd (%0), %%mm0; /* Load y 0x00000000000000yy */
+- psubsw _mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */
+- movd (%1), %%mm1; /* Load u 0x00000000000000cr */
+- movq %%mm0, %%mm3; /* Copy y to temp */
+- psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */
+- movd (%2), %%mm2; /* Load v 0x00000000000000cb */
+- psllq $16, %%mm3; /* Shift y */
+- movq %%mm1, %%mm4; /* Copy u to temp */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */
+- psllq $16, %%mm4; /* Shift u */
+- movq %%mm2, %%mm5; /* Copy v to temp */
+- psllq $16, %%mm3; /* Shift y */
+- por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */
+- psllq $16, %%mm5; /* Shift v */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */
+- por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */
+- pmullw _mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale and shift y coeffs */
+- psubw _mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */
+- pmullw _mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */
+- psubw _mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */
+- pmullw _mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */
+- paddsw %%mm1, %%mm0; /* Add u to result */
+- paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */
+- psraw $6, %%mm0; /* Demote precision */
+- packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */
+- movd %%mm0, (%3); /* Store output */
++asm("\
++/* Output will be 0x00rrggbb with the 00 trailing so this can also be used */\
++/* for bgr24. */\
++ movd (%0), %%mm0; /* Load y 0x00000000000000yy */\
++ psubsw _mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */\
++ movd (%1), %%mm1; /* Load u 0x00000000000000cr */\
++ movq %%mm0, %%mm3; /* Copy y to temp */\
++ psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */\
++ movd (%2), %%mm2; /* Load v 0x00000000000000cb */\
++ psllq $16, %%mm3; /* Shift y */\
++ movq %%mm1, %%mm4; /* Copy u to temp */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */\
++ psllq $16, %%mm4; /* Shift u */\
++ movq %%mm2, %%mm5; /* Copy v to temp */\
++ psllq $16, %%mm3; /* Shift y */\
++ por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */\
++ psllq $16, %%mm5; /* Shift v */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */\
++ por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */\
++ pmullw _mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale and shift y coeffs */\
++ psubw _mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */\
++ pmullw _mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */\
++ psubw _mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */\
++ pmullw _mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */\
++ paddsw %%mm1, %%mm0; /* Add u to result */\
++ paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */\
++ psraw $6, %%mm0; /* Demote precision */\
++ packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */\
++ movd %%mm0, (%3); /* Store output */\
+ "
+ :
+ : "r" (&y), "r" (&u), "r" (&v), "r" (output));
+@@ -351,38 +351,38 @@
+ unsigned long v,
+ unsigned long *output)
+ {
+-asm("
+-/* Output will be 0x00bbggrr with the 00 trailing so this can also be used */
+-/* for rgb24. */
+- movd (%0), %%mm0; /* Load y 0x00000000000000yy */
+- movd (%1), %%mm1; /* Load v 0x00000000000000vv */
+- movq %%mm0, %%mm3; /* Copy y to temp */
+- psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */
+- movd (%2), %%mm2; /* Load u 0x00000000000000uu */
+- psllq $16, %%mm3; /* Shift y */
+- movq %%mm1, %%mm4; /* Copy v to temp */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */
+- psllq $16, %%mm4; /* Shift v */
+- movq %%mm2, %%mm5; /* Copy u to temp */
+- psllq $16, %%mm3; /* Shift y */
+- por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */
+- psllq $16, %%mm5; /* Shift u */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */
+- por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */
+- psubw _mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */
+- pmullw _mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */
+- psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */
+- psubw _mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */
+- pmullw _mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */
+- paddsw %%mm1, %%mm0; /* Add v to result */
+- paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */
+- psraw $6, %%mm0; /* Demote precision */
+- packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */
+- movd %%mm0, (%3); /* Store output */
++asm("\
++/* Output will be 0x00bbggrr with the 00 trailing so this can also be used */\
++/* for rgb24. */\
++ movd (%0), %%mm0; /* Load y 0x00000000000000yy */\
++ movd (%1), %%mm1; /* Load v 0x00000000000000vv */\
++ movq %%mm0, %%mm3; /* Copy y to temp */\
++ psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */\
++ movd (%2), %%mm2; /* Load u 0x00000000000000uu */\
++ psllq $16, %%mm3; /* Shift y */\
++ movq %%mm1, %%mm4; /* Copy v to temp */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */\
++ psllq $16, %%mm4; /* Shift v */\
++ movq %%mm2, %%mm5; /* Copy u to temp */\
++ psllq $16, %%mm3; /* Shift y */\
++ por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */\
++ psllq $16, %%mm5; /* Shift u */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */\
++ por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */\
++ psubw _mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */\
++ pmullw _mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */\
++ psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */\
++ psubw _mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */\
++ pmullw _mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */\
++ paddsw %%mm1, %%mm0; /* Add v to result */\
++ paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */\
++ psraw $6, %%mm0; /* Demote precision */\
++ packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */\
++ movd %%mm0, (%3); /* Store output */\
+ "
+ :
+ : "r" (&y), "r" (&v), "r" (&u), "r" (output));
+@@ -393,39 +393,39 @@
+ unsigned long v,
+ unsigned long *output)
+ {
+-asm("
+-/* Output will be 0x00bbggrr with the 00 trailing so this can also be used */
+-/* for rgb24. */
+- movd (%0), %%mm0; /* Load y 0x00000000000000yy */
+- psubsw _mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */
+- movd (%1), %%mm1; /* Load v 0x00000000000000vv */
+- movq %%mm0, %%mm3; /* Copy y to temp */
+- psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */
+- movd (%2), %%mm2; /* Load u 0x00000000000000uu */
+- psllq $16, %%mm3; /* Shift y */
+- movq %%mm1, %%mm4; /* Copy v to temp */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */
+- psllq $16, %%mm4; /* Shift v */
+- movq %%mm2, %%mm5; /* Copy u to temp */
+- psllq $16, %%mm3; /* Shift y */
+- por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */
+- psllq $16, %%mm5; /* Shift u */
+- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */
+- por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */
+- pmullw _mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale y coeffs */
+- psubw _mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */
+- pmullw _mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */
+- psubw _mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */
+- pmullw _mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */
+-
+-/* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */
+- paddsw %%mm1, %%mm0; /* Add v to result */
+- paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */
+- psraw $6, %%mm0; /* Demote precision */
+- packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */
+- movd %%mm0, (%3); /* Store output */
++asm("\
++/* Output will be 0x00bbggrr with the 00 trailing so this can also be used */\
++/* for rgb24. */\
++ movd (%0), %%mm0; /* Load y 0x00000000000000yy */\
++ psubsw _mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */\
++ movd (%1), %%mm1; /* Load v 0x00000000000000vv */\
++ movq %%mm0, %%mm3; /* Copy y to temp */\
++ psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */\
++ movd (%2), %%mm2; /* Load u 0x00000000000000uu */\
++ psllq $16, %%mm3; /* Shift y */\
++ movq %%mm1, %%mm4; /* Copy v to temp */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */\
++ psllq $16, %%mm4; /* Shift v */\
++ movq %%mm2, %%mm5; /* Copy u to temp */\
++ psllq $16, %%mm3; /* Shift y */\
++ por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */\
++ psllq $16, %%mm5; /* Shift u */\
++ por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */\
++ por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */\
++ pmullw _mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale y coeffs */\
++ psubw _mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */\
++ pmullw _mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */\
++ psubw _mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */\
++ pmullw _mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */\
++\
++/* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */\
++ paddsw %%mm1, %%mm0; /* Add v to result */\
++ paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */\
++ psraw $6, %%mm0; /* Demote precision */\
++ packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */\
++ movd %%mm0, (%3); /* Store output */\
+ "
+ :
+ : "r" (&y), "r" (&v), "r" (&u), "r" (output));
diff --git a/lang/squeak3/files/patch-platforms::unix::config::configure b/lang/squeak3/files/patch-platforms::unix::config::configure
new file mode 100644
index 000000000000..ff4bc0e28148
--- /dev/null
+++ b/lang/squeak3/files/patch-platforms::unix::config::configure
@@ -0,0 +1,17 @@
+--- platforms/unix/config/configure.orig Tue Jul 1 18:53:26 2003
++++ platforms/unix/config/configure Tue Jul 1 19:03:44 2003
+@@ -9852,7 +9852,12 @@
+ cat >conftest.$ac_ext <<_ACEOF
+ #line 9853 "configure"
+ #include "confdefs.h"
+-main(){ double d= 1.0; return *(int *)&d == 0;}
++int main(void)
++{
++ union { double d; int i[ sizeof(double) / sizeof(int) ]; } d;
++ d.d = 1.0;
++ return d.i[0] == 0;
++}
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (eval echo "$as_me:9858: \"$ac_link\"") >&5
+