[SCM] libde265/master: Atted patch to reduce amount of exported symbols (also reported upstream).

fancycode-guest at users.alioth.debian.org fancycode-guest at users.alioth.debian.org
Thu Jul 31 09:55:32 UTC 2014


The following commit has been merged in the master branch:
commit 1ff71e5fb682a79d7ed6e96dc27e8a8dd736e2d7
Author: Joachim Bauch <bauch at struktur.de>
Date:   Thu Jul 31 11:33:52 2014 +0200

    Atted patch to reduce amount of exported symbols (also reported upstream).

diff --git a/debian/control b/debian/control
index 39d965b..3ee3b58 100644
--- a/debian/control
+++ b/debian/control
@@ -19,7 +19,8 @@ Build-Depends:
  libx11-dev,
  libxext-dev,
  libxv-dev,
- pkg-config
+ pkg-config,
+ quilt
 Standards-Version: 3.9.5
 Homepage: https://github.com/strukturag/libde265
 Vcs-Git: https://alioth.debian.org/anonscm/git/pkg-multimedia/libde265.git
diff --git a/debian/patches/exported_symbols.patch b/debian/patches/exported_symbols.patch
new file mode 100644
index 0000000..acacc3b
--- /dev/null
+++ b/debian/patches/exported_symbols.patch
@@ -0,0 +1,277 @@
+Fixes issue with too many exported symbols.
+Tracked upstream at "https://github.com/strukturag/libde265/pull/72".
+Index: libde265/configure.ac
+===================================================================
+--- libde265.orig/configure.ac	2014-07-31 11:09:19.000000000 +0200
++++ libde265/configure.ac	2014-07-31 11:11:36.000000000 +0200
+@@ -46,6 +46,8 @@
+ fi
+ changequote([,])dnl
+ 
++gl_VISIBILITY
++AM_CONDITIONAL([HAVE_VISIBILITY], [test "x$HAVE_VISIBILITY" != "x0"])
+ 
+ # Checks for header files.
+ AC_CHECK_HEADERS([stdint.h stdlib.h string.h malloc.h])
+Index: libde265/libde265/Makefile.am
+===================================================================
+--- libde265.orig/libde265/Makefile.am	2014-07-31 11:09:19.000000000 +0200
++++ libde265/libde265/Makefile.am	2014-07-31 11:11:36.000000000 +0200
+@@ -6,9 +6,19 @@
+         $(includedir)/libde265
+ 
+ libde265_la_CPPFLAGS =
++libde265_la_CFLAGS = \
++  $(CFLAG_VISIBILITY) \
++  -DLIBDE265_EXPORTS
++libde265_la_CXXFLAGS = \
++  $(CFLAG_VISIBILITY) \
++  -DLIBDE265_EXPORTS
+ 
+-libde265_la_LDFLAGS = -version-info $(LIBDE265_CURRENT):$(LIBDE265_REVISION):$(LIBDE265_AGE) \
+-	-export-symbols-regex ^de265_
++if HAVE_VISIBILITY
++ libde265_la_CFLAGS += -DHAVE_VISIBILITY
++ libde265_la_CXXFLAGS += -DHAVE_VISIBILITY
++endif
++
++libde265_la_LDFLAGS = -version-info $(LIBDE265_CURRENT):$(LIBDE265_REVISION):$(LIBDE265_AGE)
+ libde265_la_LIBADD = -lstdc++
+ 
+ libde265_la_SOURCES = \
+Index: libde265/libde265/de265.h
+===================================================================
+--- libde265.orig/libde265/de265.h	2014-07-31 11:09:19.000000000 +0200
++++ libde265/libde265/de265.h	2014-07-31 11:11:36.000000000 +0200
+@@ -42,6 +42,12 @@
+   #else
+   #define LIBDE265_API __declspec(dllimport)
+   #endif
++#elif HAVE_VISIBILITY
++  #ifdef LIBDE265_EXPORTS
++  #define LIBDE265_API __attribute__((__visibility__("default")))
++  #else
++  #define LIBDE265_API
++  #endif
+ #else
+   #define LIBDE265_API
+ #endif
+Index: libde265/libde265/visualize.cc
+===================================================================
+--- libde265.orig/libde265/visualize.cc	2014-07-31 11:09:19.000000000 +0200
++++ libde265/libde265/visualize.cc	2014-07-31 11:11:36.000000000 +0200
+@@ -39,7 +39,7 @@
+         int x0 = ctbX*ctb_size;
+         int y0 = ctbY*ctb_size;
+ 
+-        
++
+         uint8_t *src = ctx->img->get_image_plane_at_pos(0,x0,y0);
+ 
+         printf("%s %d %d\n",filename,x0,y0);
+@@ -91,7 +91,7 @@
+   for (int i=0;i<vBlkSize;i++)
+     {
+       int yi = y + i;
+-      
++
+       if (yi < srcimg->sps.pic_height_in_luma_samples) {
+         set_pixel(img,x,yi,stride,color,pixelSize);
+       }
+@@ -100,7 +100,7 @@
+   for (int i=0;i<hBlkSize;i++)
+     {
+       int xi = x + i;
+-      
++
+       if (xi < srcimg->sps.pic_width_in_luma_samples) {
+         set_pixel(img,xi,y,stride,color,pixelSize);
+       }
+@@ -419,42 +419,42 @@
+ }
+ 
+ 
+-void draw_CB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
++LIBDE265_API void draw_CB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,color,pixelSize, Partitioning_CB);
+ }
+ 
+-void draw_TB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
++LIBDE265_API void draw_TB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,color,pixelSize, Partitioning_TB);
+ }
+ 
+-void draw_PB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
++LIBDE265_API void draw_PB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,color,pixelSize, Partitioning_PB);
+ }
+ 
+-void draw_intra_pred_modes(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
++LIBDE265_API void draw_intra_pred_modes(const de265_image* img, uint8_t* dst, int stride, uint32_t color,int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,color,pixelSize, IntraPredMode);
+ }
+ 
+-void draw_PB_pred_modes(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
++LIBDE265_API void draw_PB_pred_modes(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,0,pixelSize, PBPredMode);
+ }
+ 
+-void draw_QuantPY(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
++LIBDE265_API void draw_QuantPY(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,0,pixelSize, QuantP_Y);
+ }
+ 
+-void draw_Motion(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
++LIBDE265_API void draw_Motion(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
+ {
+   draw_tree_grid(img,dst,stride,0,pixelSize, PBMotionVectors);
+ }
+ 
+-void draw_Slices(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
++LIBDE265_API void draw_Slices(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
+ {
+   // --- mark first CTB in slice (red - independent / green - dependent) ---
+ 
+@@ -534,7 +534,7 @@
+ 
+ }
+ 
+-void draw_Tiles(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
++LIBDE265_API void draw_Tiles(const de265_image* img, uint8_t* dst, int stride, int pixelSize)
+ {
+   const uint32_t color = 0xffff00;
+ 
+Index: libde265/libde265/visualize.h
+===================================================================
+--- libde265.orig/libde265/visualize.h	2014-07-31 11:09:19.000000000 +0200
++++ libde265/libde265/visualize.h	2014-07-31 11:11:36.000000000 +0200
+@@ -21,19 +21,30 @@
+ #ifndef DE265_VISUALIZE_H
+ #define DE265_VISUALIZE_H
+ 
++#include "libde265/de265.h"
+ #include "libde265/image.h"
+ 
+ 
+ void write_picture_to_file(const de265_image* img, const char* filename);
+ 
+-void draw_CB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
+-void draw_TB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
+-void draw_PB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
+-void draw_PB_pred_modes(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
+-void draw_intra_pred_modes(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
+-void draw_QuantPY(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
+-void draw_Motion(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
+-void draw_Slices(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
+-void draw_Tiles(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++// TODO: these should either move to "sherlock265", or be part of the
++// "official" public API
++LIBDE265_API void draw_CB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
++LIBDE265_API void draw_TB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
++LIBDE265_API void draw_PB_grid(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
++LIBDE265_API void draw_PB_pred_modes(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++LIBDE265_API void draw_intra_pred_modes(const de265_image* img, uint8_t* dst, int stride, uint32_t value, int pixelSize);
++LIBDE265_API void draw_QuantPY(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++LIBDE265_API void draw_Motion(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++LIBDE265_API void draw_Slices(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++LIBDE265_API void draw_Tiles(const de265_image* img, uint8_t* dst, int stride, int pixelSize);
++
++#ifdef __cplusplus
++}
++#endif
+ 
+ #endif
+Index: libde265/libde265/x86/Makefile.am
+===================================================================
+--- libde265.orig/libde265/x86/Makefile.am	2014-07-31 11:09:19.000000000 +0200
++++ libde265/libde265/x86/Makefile.am	2014-07-31 11:11:36.000000000 +0200
+@@ -1,13 +1,20 @@
+ noinst_LTLIBRARIES = libde265_x86.la  libde265_x86_sse.la
+ 
+-libde265_x86_la_CXXFLAGS = -I..
++libde265_x86_la_CXXFLAGS = -I.. $(CFLAG_VISIBILITY)
+ libde265_x86_la_SOURCES = sse.cc sse.h
+ libde265_x86_la_LIBADD = libde265_x86_sse.la
+ 
++if HAVE_VISIBILITY
++ libde265_x86_la_CXXFLAGS += -DHAVE_VISIBILITY
++endif
++
+ 
+ # SSE4 specific functions
+ 
+-libde265_x86_sse_la_CXXFLAGS = -msse4.1 -I..
++libde265_x86_sse_la_CXXFLAGS = -msse4.1 -I.. $(CFLAG_VISIBILITY)
+ libde265_x86_sse_la_SOURCES = sse-motion.cc sse-motion.h sse-dct.h sse-dct.cc
+ 
++if HAVE_VISIBILITY
++ libde265_x86_sse_la_CXXFLAGS += -DHAVE_VISIBILITY
++endif
+ 
+Index: libde265/m4/visibility.m4
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ libde265/m4/visibility.m4	2014-07-31 11:12:07.000000000 +0200
+@@ -0,0 +1,52 @@
++# visibility.m4 serial 1 (gettext-0.15)
++dnl Copyright (C) 2005 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl From Bruno Haible.
++
++dnl Tests whether the compiler supports the command-line option
++dnl -fvisibility=hidden and the function and variable attributes
++dnl __attribute__((__visibility__("hidden"))) and
++dnl __attribute__((__visibility__("default"))).
++dnl Does *not* test for __visibility__("protected") - which has tricky
++dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
++dnl MacOS X.
++dnl Does *not* test for __visibility__("internal") - which has processor
++dnl dependent semantics.
++dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
++dnl "really only recommended for legacy code".
++dnl Set the variable CFLAG_VISIBILITY.
++dnl Defines and sets the variable HAVE_VISIBILITY.
++
++AC_DEFUN([gl_VISIBILITY],
++[
++  AC_REQUIRE([AC_PROG_CC])
++  CFLAG_VISIBILITY=
++  HAVE_VISIBILITY=0
++  if test -n "$GCC"; then
++    AC_MSG_CHECKING([for simple visibility declarations])
++    AC_CACHE_VAL(gl_cv_cc_visibility, [
++      gl_save_CFLAGS="$CFLAGS"
++      CFLAGS="$CFLAGS -fvisibility=hidden"
++      AC_TRY_COMPILE(
++        [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
++         extern __attribute__((__visibility__("default"))) int exportedvar;
++         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
++         extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
++        [],
++        gl_cv_cc_visibility=yes,
++        gl_cv_cc_visibility=no)
++      CFLAGS="$gl_save_CFLAGS"])
++    AC_MSG_RESULT([$gl_cv_cc_visibility])
++    if test $gl_cv_cc_visibility = yes; then
++      CFLAG_VISIBILITY="-fvisibility=hidden"
++      HAVE_VISIBILITY=1
++    fi
++  fi
++  AC_SUBST([CFLAG_VISIBILITY])
++  AC_SUBST([HAVE_VISIBILITY])
++  AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
++    [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
++])
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..d7d5522
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+exported_symbols.patch
diff --git a/debian/rules b/debian/rules
index 3682cbb..935db62 100755
--- a/debian/rules
+++ b/debian/rules
@@ -2,7 +2,7 @@
 #export DH_VERBOSE=1
 
 %:
-	dh $@ --with autoreconf --parallel
+	dh $@ --with autoreconf --with quilt --parallel
 
 override_dh_auto_install:
 	dh_auto_install

-- 
libde265 packaging



More information about the pkg-multimedia-commits mailing list