[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