commit:     f28a947813dbc0a1fd1a8d4a712d58a64c48ca01
Author:     Peter Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Sun May 14 00:35:39 2017 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Fri May 26 20:58:04 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f28a9478

media-libs/libfpx: Fix building with GCC-6

Bug: https://bugs.gentoo.org/show_bug.cgi?id=594094
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Closes: https://github.com/gentoo/gentoo/pull/4623

 .../files/libfpx-1.2.0.13-export-symbols.patch     |  4 +--
 media-libs/libfpx/files/libfpx-1.3.1_p6-gcc6.patch | 35 ++++++++++++++++++++++
 media-libs/libfpx/libfpx-1.3.1_p6.ebuild           |  9 ++++--
 3 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/media-libs/libfpx/files/libfpx-1.2.0.13-export-symbols.patch 
b/media-libs/libfpx/files/libfpx-1.2.0.13-export-symbols.patch
index 9e0f1632550..dfb974bc716 100644
--- a/media-libs/libfpx/files/libfpx-1.2.0.13-export-symbols.patch
+++ b/media-libs/libfpx/files/libfpx-1.2.0.13-export-symbols.patch
@@ -1,8 +1,8 @@
 * At least the Darwin linker doesn't like double symbols during the
   final linking stage...
 
---- jpeg/jpegconf.h
-+++ jpeg/jpegconf.h
+--- a/jpeg/jpegconf.h
++++ b/jpeg/jpegconf.h
 @@ -27,6 +27,6 @@
  #   pragma warning(disable : 4244)
  #   pragma warning(disable : 4142)

diff --git a/media-libs/libfpx/files/libfpx-1.3.1_p6-gcc6.patch 
b/media-libs/libfpx/files/libfpx-1.3.1_p6-gcc6.patch
new file mode 100644
index 00000000000..75c7a7efdbd
--- /dev/null
+++ b/media-libs/libfpx/files/libfpx-1.3.1_p6-gcc6.patch
@@ -0,0 +1,35 @@
+--- a/oless/h/page.hxx
++++ b/oless/h/page.hxx
+@@ -47,6 +47,7 @@
+ {
+ public:
+     void * operator new(size_t size, size_t sizeData);
++    void operator delete(void *ptr);
+ 
+     CMSFPage(CMSFPage *pmpNext);
+     inline ~CMSFPage();
+@@ -133,6 +134,24 @@
+ }
+ 
+ //+---------------------------------------------------------------------------
++//
++//  Member: CMSFPage::operator delete, public
++//
++//  Synopsis: Overloaded delete operator for CMSFPage.
++//
++//  Arguments:  [ptr] -- Pointer to CMSFPage object
++//
++//----------------------------------------------------------------------------
++
++inline void CMSFPage::operator delete(void *ptr)
++{
++    if (ptr) {
++        free(ptr);
++        ptr = NULL;
++    }
++}
++
++//+---------------------------------------------------------------------------
+ //
+ //  Member: CMSFPage::GetNext, public
+ //

diff --git a/media-libs/libfpx/libfpx-1.3.1_p6.ebuild 
b/media-libs/libfpx/libfpx-1.3.1_p6.ebuild
index f8bca2dbbed..fcaf30fc17d 100644
--- a/media-libs/libfpx/libfpx-1.3.1_p6.ebuild
+++ b/media-libs/libfpx/libfpx-1.3.1_p6.ebuild
@@ -15,10 +15,13 @@ IUSE="static-libs"
 
 S=${WORKDIR}/${P/_p/-}
 
-src_prepare() {
-       epatch "${FILESDIR}"/${PN}-1.2.0.13-export-symbols.patch
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.2.0.13-export-symbols.patch
+       "${FILESDIR}"/${P}-gcc6.patch
+)
 
-       eapply_user
+src_prepare() {
+       default
 
        # we're not windows, even though we don't define __unix by default
        [[ ${CHOST} == *-darwin* ]] && append-flags -D__unix

Reply via email to