forked from pool/tvheadend
Accepting request 736795 from multimedia:apps
OBS-URL: https://build.opensuse.org/request/show/736795 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/tvheadend?expand=0&rev=10
This commit is contained in:
commit
7b5c2513c7
80
fix_configure_checks_with_LTO.patch
Normal file
80
fix_configure_checks_with_LTO.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
From 77ef695f0e76a5f989febfccdc19972ec438fa37 Mon Sep 17 00:00:00 2001
|
||||||
|
From: StefanBruens <stefan.bruens@rwth-aachen.de>
|
||||||
|
Date: Wed, 9 Oct 2019 01:52:50 +0200
|
||||||
|
Subject: [PATCH] Avoid configure checks being optimized away with LTO
|
||||||
|
|
||||||
|
In case the checks are compiled with CFLAGS including "-O1 -flto" (or any
|
||||||
|
other optimization level), a "test()" function not referenced by by main
|
||||||
|
will be optimized away and discarded prior to the final linking step, and
|
||||||
|
there will be no undefined symbols, thus the checks always succeeds.
|
||||||
|
|
||||||
|
This at least affects the "strlcpy"/"strlcat" checks, but may affects other
|
||||||
|
checks as well.
|
||||||
|
---
|
||||||
|
configure | 16 ++++++++++++----
|
||||||
|
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index e5f6f593b6..e76760479a 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -177,27 +177,31 @@ else
|
||||||
|
fi
|
||||||
|
|
||||||
|
check_cc_snippet strlcat '#include <string.h>
|
||||||
|
-int test(int argc, char **argv) {
|
||||||
|
+#define TEST test
|
||||||
|
+int test() {
|
||||||
|
char dst[10];
|
||||||
|
strlcat("test", dst, sizeof(dst));
|
||||||
|
return 0;
|
||||||
|
}'
|
||||||
|
|
||||||
|
check_cc_snippet strlcpy '#include <string.h>
|
||||||
|
-int test(int argc, char **argv) {
|
||||||
|
+#define TEST test
|
||||||
|
+int test() {
|
||||||
|
char dst[10];
|
||||||
|
strlcpy("test", dst, sizeof(dst));
|
||||||
|
return 0;
|
||||||
|
}'
|
||||||
|
|
||||||
|
check_cc_snippet fdatasync '#include <unistd.h>
|
||||||
|
-int test(int argc, char **argv) {
|
||||||
|
+#define TEST test
|
||||||
|
+int test() {
|
||||||
|
fdatasync(0);
|
||||||
|
return 0;
|
||||||
|
}'
|
||||||
|
|
||||||
|
check_cc_snippet getloadavg '#include <stdlib.h>
|
||||||
|
-void test() { getloadavg(NULL,0); }'
|
||||||
|
+#define TEST test
|
||||||
|
+int test() { return getloadavg(NULL,0); }'
|
||||||
|
|
||||||
|
check_cc_snippet atomic32 '#include <stdint.h>
|
||||||
|
int test(int *ptr){
|
||||||
|
@@ -222,6 +226,7 @@ return __sync_fetch_and_add(ptr, (void *)1);
|
||||||
|
}'
|
||||||
|
|
||||||
|
check_cc_snippet bitops64 '#include <stdint.h>
|
||||||
|
+#define TEST test
|
||||||
|
int test(void){
|
||||||
|
int l = sizeof(long);
|
||||||
|
return l == 8 ? 0 : 1;
|
||||||
|
@@ -312,6 +317,7 @@ int test(void)
|
||||||
|
# note that iconv routines are mandatory
|
||||||
|
check_cc_snippet libiconv '
|
||||||
|
#include <iconv.h>
|
||||||
|
+#define TEST test
|
||||||
|
int test(void)
|
||||||
|
{
|
||||||
|
iconv_t ic = iconv_open("ASCII", "ASCII");
|
||||||
|
@@ -327,6 +333,7 @@ fi
|
||||||
|
|
||||||
|
check_cc_snippet ifnames '
|
||||||
|
#include <net/if.h>
|
||||||
|
+#define TEST test
|
||||||
|
int test(void)
|
||||||
|
{
|
||||||
|
struct if_nameindex *ifnames = if_nameindex();
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 9 00:04:02 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Fix configure checks when compiling with LTO. Due to the broken
|
||||||
|
checks, linking fails.
|
||||||
|
+ Add fix_configure_checks_with_LTO.patch
|
||||||
|
- Some spec file cleanup (license macro).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 12 21:09:46 UTC 2019 - bjorn.lie@gmail.com
|
Tue Feb 12 21:09:46 UTC 2019 - bjorn.lie@gmail.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package tvheadend
|
# spec file for package tvheadend
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
# Copyright (c) 2016 Packman Team <packman@links2linux.de>
|
# Copyright (c) 2016 Packman Team <packman@links2linux.de>
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -13,7 +13,7 @@
|
|||||||
# license that conforms to the Open Source Definition (Version 1.9)
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
# published by the Open Source Initiative.
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
@ -42,6 +42,8 @@ Source3: %{name}_super
|
|||||||
Source4: dvb-scan-git20190112.tar.gz
|
Source4: dvb-scan-git20190112.tar.gz
|
||||||
# PATCH-FIX-OPENSUSE tvheadend-fix-service-dependency.patch -- do not wait for or require syslog
|
# PATCH-FIX-OPENSUSE tvheadend-fix-service-dependency.patch -- do not wait for or require syslog
|
||||||
Patch2: %{name}-fix-service-dependency.patch
|
Patch2: %{name}-fix-service-dependency.patch
|
||||||
|
# PATCH-FIX-UPSTREAM -- fix unsufficient configure checks when using LTO (check optimized away)
|
||||||
|
Patch3: fix_configure_checks_with_LTO.patch
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
@ -57,9 +59,7 @@ BuildRequires: pkgconfig(libssl)
|
|||||||
BuildRequires: pkgconfig(libswscale)
|
BuildRequires: pkgconfig(libswscale)
|
||||||
BuildRequires: pkgconfig(liburiparser)
|
BuildRequires: pkgconfig(liburiparser)
|
||||||
BuildRequires: pkgconfig(zlib)
|
BuildRequires: pkgconfig(zlib)
|
||||||
%if 0%{?suse_version} > 1320
|
|
||||||
Requires(pre): group(%{htsgroup})
|
Requires(pre): group(%{htsgroup})
|
||||||
%endif
|
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -73,6 +73,7 @@ day-to-day operations, such as searching the electronic program guide
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
|
||||||
sed -e "s/-u \([^ ]*\) -g \([^ ]*\)/-u %{htsuser} -g %{htsgroup}/" -i rpm/%{name}.sysconfig
|
sed -e "s/-u \([^ ]*\) -g \([^ ]*\)/-u %{htsuser} -g %{htsgroup}/" -i rpm/%{name}.sysconfig
|
||||||
sed -e '/^TVH_ARGS/cTVH_ARGS="-C"' -i debian/%{name}.default
|
sed -e '/^TVH_ARGS/cTVH_ARGS="-C"' -i debian/%{name}.default
|
||||||
@ -132,8 +133,8 @@ getent passwd %htsuser >/dev/null || %{_sbindir}/useradd -g %{htsgroup} -m -d %{
|
|||||||
%service_del_postun %{name}.service
|
%service_del_postun %{name}.service
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%doc CONTRIBUTING.md
|
||||||
%doc CONTRIBUTING.md LICENSE.md
|
%license LICENSE.md
|
||||||
%{_bindir}/tvheadend
|
%{_bindir}/tvheadend
|
||||||
%{_datadir}/tvheadend
|
%{_datadir}/tvheadend
|
||||||
%{_mandir}/man1/tvheadend.1%{?ext_man}
|
%{_mandir}/man1/tvheadend.1%{?ext_man}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user