diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-03-31 03:20:54 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-03-31 03:20:54 +0000 |
commit | 91cfb5ea99089fc03611cc200ab83a35de65c2f4 (patch) | |
tree | d447a0d8c363648e26f8e2ee0783cd3bc5b77bf5 /media-libs/lib3ds | |
parent | Fixed compile issue, bug #163473. (diff) | |
download | gentoo-2-91cfb5ea99089fc03611cc200ab83a35de65c2f4.tar.gz gentoo-2-91cfb5ea99089fc03611cc200ab83a35de65c2f4.tar.bz2 gentoo-2-91cfb5ea99089fc03611cc200ab83a35de65c2f4.zip |
Fix strict aliasing violation #172421 by Anssi Grohn.
(Portage version: 2.1.2.2)
Diffstat (limited to 'media-libs/lib3ds')
-rw-r--r-- | media-libs/lib3ds/ChangeLog | 11 | ||||
-rw-r--r-- | media-libs/lib3ds/files/digest-lib3ds-1.2.0-r1 | 3 | ||||
-rw-r--r-- | media-libs/lib3ds/files/lib3ds-1.2.0-fix-aliasing.patch | 33 | ||||
-rw-r--r-- | media-libs/lib3ds/files/lib3ds-1.2.0-m4-underquoted.patch | 11 | ||||
-rw-r--r-- | media-libs/lib3ds/lib3ds-1.2.0-r1.ebuild | 33 |
5 files changed, 89 insertions, 2 deletions
diff --git a/media-libs/lib3ds/ChangeLog b/media-libs/lib3ds/ChangeLog index bba482da3f6c..905582cc5dcd 100644 --- a/media-libs/lib3ds/ChangeLog +++ b/media-libs/lib3ds/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-libs/lib3ds -# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-libs/lib3ds/ChangeLog,v 1.8 2006/07/13 13:57:13 agriffis Exp $ +# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/lib3ds/ChangeLog,v 1.9 2007/03/31 03:20:54 vapier Exp $ + +*lib3ds-1.2.0-r1 (31 Mar 2007) + + 31 Mar 2007; Mike Frysinger <vapier@gentoo.org> + +files/lib3ds-1.2.0-fix-aliasing.patch, + +files/lib3ds-1.2.0-m4-underquoted.patch, +lib3ds-1.2.0-r1.ebuild: + Fix strict aliasing violation #172421 by Anssi Grohn. 13 Jul 2006; Aron Griffis <agriffis@gentoo.org> lib3ds-1.2.0.ebuild: Mark 1.2.0 stable on ia64 diff --git a/media-libs/lib3ds/files/digest-lib3ds-1.2.0-r1 b/media-libs/lib3ds/files/digest-lib3ds-1.2.0-r1 new file mode 100644 index 000000000000..14297f0fac32 --- /dev/null +++ b/media-libs/lib3ds/files/digest-lib3ds-1.2.0-r1 @@ -0,0 +1,3 @@ +MD5 3a7f891d18af0151876b98bc05d3b373 lib3ds-1.2.0.tar.gz 136806 +RMD160 3e0401e36b545c2a54213ecb2ea3216360450562 lib3ds-1.2.0.tar.gz 136806 +SHA256 6204b0fdf308d191bfc650b8a90b96c86c1c6fbfb03f3046f72aedc8bc7686bb lib3ds-1.2.0.tar.gz 136806 diff --git a/media-libs/lib3ds/files/lib3ds-1.2.0-fix-aliasing.patch b/media-libs/lib3ds/files/lib3ds-1.2.0-fix-aliasing.patch new file mode 100644 index 000000000000..7196badd3a2a --- /dev/null +++ b/media-libs/lib3ds/files/lib3ds-1.2.0-fix-aliasing.patch @@ -0,0 +1,33 @@ +strict aliasing rules say this sort of casting is illegal + +http://bugs.gentoo.org/172421 + +--- lib3ds/io.c ++++ lib3ds/io.c +@@ -249,6 +249,7 @@ + { + Lib3dsByte b[4]; + Lib3dsDword d; ++ Lib3dsFloat ret; + + ASSERT(io); + lib3ds_io_read(io, b, 4); +@@ -256,7 +257,8 @@ + ((Lib3dsDword)b[2] << 16) | + ((Lib3dsDword)b[1] << 8) | + ((Lib3dsDword)b[0]); +- return(*((Lib3dsFloat*)&d)); ++ memcpy(&ret, &d, sizeof(ret)); ++ return ret; + } + + +@@ -462,7 +464,7 @@ + Lib3dsDword d; + + ASSERT(io); +- d=*((Lib3dsDword*)&l); ++ memcpy(&d, &l, sizeof(d)); + b[3]=(Lib3dsByte)(((Lib3dsDword)d & 0xFF000000) >> 24); + b[2]=(Lib3dsByte)(((Lib3dsDword)d & 0x00FF0000) >> 16); + b[1]=(Lib3dsByte)(((Lib3dsDword)d & 0x0000FF00) >> 8); diff --git a/media-libs/lib3ds/files/lib3ds-1.2.0-m4-underquoted.patch b/media-libs/lib3ds/files/lib3ds-1.2.0-m4-underquoted.patch new file mode 100644 index 000000000000..ee8c654f650d --- /dev/null +++ b/media-libs/lib3ds/files/lib3ds-1.2.0-m4-underquoted.patch @@ -0,0 +1,11 @@ +--- lib3ds-1.2.0/lib3ds.m4 ++++ lib3ds-1.2.0/lib3ds.m4 +@@ -1,7 +1,7 @@ + dnl + dnl AM_PATH_LIB3DS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) + dnl +-AC_DEFUN(AM_PATH_LIB3DS, ++AC_DEFUN([AM_PATH_LIB3DS], + [ + + AC_ARG_WITH(lib3ds-prefix,[ --with-lib3ds-prefix=PFX Prefix where lib3ds is installed (optional)], diff --git a/media-libs/lib3ds/lib3ds-1.2.0-r1.ebuild b/media-libs/lib3ds/lib3ds-1.2.0-r1.ebuild new file mode 100644 index 000000000000..e02e20161f52 --- /dev/null +++ b/media-libs/lib3ds/lib3ds-1.2.0-r1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/lib3ds/lib3ds-1.2.0-r1.ebuild,v 1.1 2007/03/31 03:20:54 vapier Exp $ + +inherit eutils + +DESCRIPTION="overall software library for managing 3D-Studio Release 3 and 4 .3DS files" +HOMEPAGE="http://lib3ds.sourceforge.net/" +SRC_URI="mirror://sourceforge/lib3ds/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86" +IUSE="" + +DEPEND="virtual/glut + virtual/opengl" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-fix-aliasing.patch #172421 + epatch "${FILESDIR}"/${P}-m4-underquoted.patch + # Add -fPIC only to the .so + sed -i -e "s/@CFLAGS@/@CFLAGS@ -fPIC/" lib3ds/Makefile.in || die "sed lib3ds/Makefile.in failed" +} + +src_install() { + emake DESTDIR="${D}" install || die + dobin examples/3ds2rib || die + newbin examples/player 3dsplayer || die + dodoc README AUTHORS +} |