Hello community,

here is the log from the commit of package libsigrok for openSUSE:Factory 
checked in at 2019-11-14 23:47:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsigrok (Old)
 and      /work/SRC/openSUSE:Factory/.libsigrok.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libsigrok"

Thu Nov 14 23:47:59 2019 rev:10 rq:746063 version:0.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libsigrok/libsigrok.changes      2019-09-16 
10:53:02.747151689 +0200
+++ /work/SRC/openSUSE:Factory/.libsigrok.new.26869/libsigrok.changes   
2019-11-14 23:48:01.236632904 +0100
@@ -1,0 +2,6 @@
+Tue Oct 22 08:20:05 UTC 2019 - Jiri Slaby <[email protected]>
+
+- Another fix for LTO (https://sigrok.org/bugzilla/show_bug.cgi?id=1433)
+ * add LTO-linking-fix.patch 
+
+-------------------------------------------------------------------

New:
----
  LTO-linking-fix.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsigrok.spec ++++++
--- /var/tmp/diff_new_pack.ujByj4/_old  2019-11-14 23:48:01.860632687 +0100
+++ /var/tmp/diff_new_pack.ujByj4/_new  2019-11-14 23:48:01.868632684 +0100
@@ -28,6 +28,7 @@
 Source0:        
http://sigrok.org/download/source/libsigrok/%{name}-%{version}.tar.gz
 Source1:        sigrok-mime.xml
 Patch0:         0001-Fix-link-errors-when-compiling-with-LTO-enabled.patch
+Patch1:         LTO-linking-fix.patch
 BuildRequires:  alsa-devel
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -101,7 +102,7 @@
 
 %prep
 %setup -q
-%patch0 -p1
+%autopatch -p1
 
 %build
 %configure \

++++++ LTO-linking-fix.patch ++++++
From: Jiri Slaby <[email protected]>
Subject: LTO: fix linking
References: https://sigrok.org/bugzilla/show_bug.cgi?id=1433

With LTO, the trick to collect drivers does not work. Use linker script
instead.

---
 Makefile.am             |   15 +++---------
 Makefile.in             |   56 +++++++++---------------------------------------
 src/driver_list_start.c |   33 ----------------------------
 src/driver_list_stop.c  |   33 ----------------------------
 src/drivers.c           |    2 -
 src/libdrivers.ld       |    9 +++++++
 6 files changed, 25 insertions(+), 123 deletions(-)

--- a/Makefile.am
+++ b/Makefile.am
@@ -173,22 +173,15 @@ libsigrok_la_SOURCES += \
        src/scale/kern.c
 
 # Hardware drivers
-noinst_LTLIBRARIES = src/libdrivers.la \
-       src/libdrivers_head.la src/libdrivers_tail.la
+noinst_LTLIBRARIES = src/libdrivers.la
 
-src/libdrivers.o: src/libdrivers.la \
-               src/libdrivers_head.la src/libdrivers_tail.la
-       $(AM_V_CCLD)$(LINK) src/libdrivers_head.la src/libdrivers.la \
-               src/libdrivers_tail.la
+src/libdrivers.o: src/libdrivers.la
+       $(AM_V_CCLD)$(LINK) src/libdrivers.la
 src/libdrivers.lo: src/libdrivers.o
        $(AM_V_GEN)echo "# Generated by libtool" > $@
        $(AM_V_at)echo "pic_object='libdrivers.o'" >> $@
        $(AM_V_at)echo "non_pic_object='libdrivers.o'" >> $@
 
-src_libdrivers_head_la_SOURCES = src/driver_list_start.c
-
-src_libdrivers_tail_la_SOURCES = src/driver_list_stop.c
-
 src_libdrivers_la_SOURCES = src/drivers.c
 
 if HW_AGILENT_DMM
@@ -604,7 +597,7 @@ src_libdrivers_la_SOURCES += \
 endif
 
 libsigrok_la_LIBADD = src/libdrivers.lo $(SR_EXTRA_LIBS) $(LIBSIGROK_LIBS)
-libsigrok_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined
+libsigrok_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined -Wc,-T 
-Wc,src/libdrivers.ld
 
 library_includedir = $(includedir)/libsigrok
 library_include_HEADERS = \
--- a/Makefile.in
+++ b/Makefile.in
@@ -1018,12 +1018,6 @@ am_src_libdrivers_la_OBJECTS = src/drive
        $(am__objects_69) $(am__objects_70) $(am__objects_71) \
        $(am__objects_72) $(am__objects_73)
 src_libdrivers_la_OBJECTS = $(am_src_libdrivers_la_OBJECTS)
-src_libdrivers_head_la_LIBADD =
-am_src_libdrivers_head_la_OBJECTS = src/driver_list_start.lo
-src_libdrivers_head_la_OBJECTS = $(am_src_libdrivers_head_la_OBJECTS)
-src_libdrivers_tail_la_LIBADD =
-am_src_libdrivers_tail_la_OBJECTS = src/driver_list_stop.lo
-src_libdrivers_tail_la_OBJECTS = $(am_src_libdrivers_tail_la_OBJECTS)
 am_tests_main_OBJECTS = tests/lib.$(OBJEXT) tests/main.$(OBJEXT) \
        tests/core.$(OBJEXT) tests/input_all.$(OBJEXT) \
        tests/input_binary.$(OBJEXT) tests/output_all.$(OBJEXT) \
@@ -1052,13 +1046,11 @@ am__maybe_remake_depfiles = depfiles
 am__depfiles_remade = bindings/cxx/$(DEPDIR)/classes.Plo \
        src/$(DEPDIR)/analog.Plo src/$(DEPDIR)/backend.Plo \
        src/$(DEPDIR)/conversion.Plo src/$(DEPDIR)/device.Plo \
-       src/$(DEPDIR)/driver_list_start.Plo \
-       src/$(DEPDIR)/driver_list_stop.Plo src/$(DEPDIR)/drivers.Plo \
-       src/$(DEPDIR)/error.Plo src/$(DEPDIR)/ezusb.Plo \
-       src/$(DEPDIR)/fallback.Plo src/$(DEPDIR)/hwdriver.Plo \
-       src/$(DEPDIR)/log.Plo src/$(DEPDIR)/resource.Plo \
-       src/$(DEPDIR)/serial.Plo src/$(DEPDIR)/session.Plo \
-       src/$(DEPDIR)/session_driver.Plo \
+       src/$(DEPDIR)/drivers.Plo src/$(DEPDIR)/error.Plo \
+       src/$(DEPDIR)/ezusb.Plo src/$(DEPDIR)/fallback.Plo \
+       src/$(DEPDIR)/hwdriver.Plo src/$(DEPDIR)/log.Plo \
+       src/$(DEPDIR)/resource.Plo src/$(DEPDIR)/serial.Plo \
+       src/$(DEPDIR)/session.Plo src/$(DEPDIR)/session_driver.Plo \
        src/$(DEPDIR)/session_file.Plo src/$(DEPDIR)/soft-trigger.Plo \
        src/$(DEPDIR)/std.Plo src/$(DEPDIR)/strutil.Plo \
        src/$(DEPDIR)/sw_limits.Plo src/$(DEPDIR)/trigger.Plo \
@@ -1287,13 +1279,10 @@ am__v_CXXLD_0 = @echo "  CXXLD   " $@;
 am__v_CXXLD_1 = 
 SOURCES = $(bindings_cxx_libsigrokcxx_la_SOURCES) \
        $(libsigrok_la_SOURCES) $(src_libdrivers_la_SOURCES) \
-       $(src_libdrivers_head_la_SOURCES) \
-       $(src_libdrivers_tail_la_SOURCES) $(tests_main_SOURCES)
+       $(tests_main_SOURCES)
 DIST_SOURCES = $(am__bindings_cxx_libsigrokcxx_la_SOURCES_DIST) \
        $(am__libsigrok_la_SOURCES_DIST) \
-       $(am__src_libdrivers_la_SOURCES_DIST) \
-       $(src_libdrivers_head_la_SOURCES) \
-       $(src_libdrivers_tail_la_SOURCES) $(tests_main_SOURCES)
+       $(am__src_libdrivers_la_SOURCES_DIST) $(tests_main_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -1691,7 +1680,6 @@ program_transform_name = @program_transf
 psdir = @psdir@
 pyexecdir = @pyexecdir@
 pythondir = @pythondir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1762,11 +1750,7 @@ libsigrok_la_SOURCES = src/backend.c src
        src/scale/kern.c
 
 # Hardware drivers
-noinst_LTLIBRARIES = src/libdrivers.la \
-       src/libdrivers_head.la src/libdrivers_tail.la
-
-src_libdrivers_head_la_SOURCES = src/driver_list_start.c
-src_libdrivers_tail_la_SOURCES = src/driver_list_stop.c
+noinst_LTLIBRARIES = src/libdrivers.la
 src_libdrivers_la_SOURCES = src/drivers.c $(am__append_9) \
        $(am__append_10) $(am__append_11) $(am__append_12) \
        $(am__append_13) $(am__append_14) $(am__append_15) \
@@ -1791,7 +1775,7 @@ src_libdrivers_la_SOURCES = src/drivers.
        $(am__append_70) $(am__append_71) $(am__append_72) \
        $(am__append_73) $(am__append_74)
 libsigrok_la_LIBADD = src/libdrivers.lo $(SR_EXTRA_LIBS) $(LIBSIGROK_LIBS)
-libsigrok_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined
+libsigrok_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined -Wc,-T 
-Wc,src/libdrivers.ld
 library_includedir = $(includedir)/libsigrok
 library_include_HEADERS = \
        include/libsigrok/libsigrok.h \
@@ -3028,16 +3012,6 @@ src/hardware/zketech-ebd-usb/api.lo:  \
 
 src/libdrivers.la: $(src_libdrivers_la_OBJECTS) 
$(src_libdrivers_la_DEPENDENCIES) $(EXTRA_src_libdrivers_la_DEPENDENCIES) 
src/$(am__dirstamp)
        $(AM_V_CCLD)$(LINK)  $(src_libdrivers_la_OBJECTS) 
$(src_libdrivers_la_LIBADD) $(LIBS)
-src/driver_list_start.lo: src/$(am__dirstamp) \
-       src/$(DEPDIR)/$(am__dirstamp)
-
-src/libdrivers_head.la: $(src_libdrivers_head_la_OBJECTS) 
$(src_libdrivers_head_la_DEPENDENCIES) 
$(EXTRA_src_libdrivers_head_la_DEPENDENCIES) src/$(am__dirstamp)
-       $(AM_V_CCLD)$(LINK)  $(src_libdrivers_head_la_OBJECTS) 
$(src_libdrivers_head_la_LIBADD) $(LIBS)
-src/driver_list_stop.lo: src/$(am__dirstamp) \
-       src/$(DEPDIR)/$(am__dirstamp)
-
-src/libdrivers_tail.la: $(src_libdrivers_tail_la_OBJECTS) 
$(src_libdrivers_tail_la_DEPENDENCIES) 
$(EXTRA_src_libdrivers_tail_la_DEPENDENCIES) src/$(am__dirstamp)
-       $(AM_V_CCLD)$(LINK)  $(src_libdrivers_tail_la_OBJECTS) 
$(src_libdrivers_tail_la_LIBADD) $(LIBS)
 tests/$(am__dirstamp):
        @$(MKDIR_P) tests
        @: > tests/$(am__dirstamp)
@@ -3241,8 +3215,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/backend.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/conversion.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/device.Plo@am__quote@ # 
am--include-marker
-@AMDEP_TRUE@@am__include@ 
@am__quote@src/$(DEPDIR)/driver_list_start.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ 
@am__quote@src/$(DEPDIR)/driver_list_stop.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/drivers.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/error.Plo@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/ezusb.Plo@am__quote@ # 
am--include-marker
@@ -4387,8 +4359,6 @@ distclean: distclean-am
        -rm -f src/$(DEPDIR)/backend.Plo
        -rm -f src/$(DEPDIR)/conversion.Plo
        -rm -f src/$(DEPDIR)/device.Plo
-       -rm -f src/$(DEPDIR)/driver_list_start.Plo
-       -rm -f src/$(DEPDIR)/driver_list_stop.Plo
        -rm -f src/$(DEPDIR)/drivers.Plo
        -rm -f src/$(DEPDIR)/error.Plo
        -rm -f src/$(DEPDIR)/ezusb.Plo
@@ -4674,8 +4644,6 @@ maintainer-clean: maintainer-clean-am
        -rm -f src/$(DEPDIR)/backend.Plo
        -rm -f src/$(DEPDIR)/conversion.Plo
        -rm -f src/$(DEPDIR)/device.Plo
-       -rm -f src/$(DEPDIR)/driver_list_start.Plo
-       -rm -f src/$(DEPDIR)/driver_list_stop.Plo
        -rm -f src/$(DEPDIR)/drivers.Plo
        -rm -f src/$(DEPDIR)/error.Plo
        -rm -f src/$(DEPDIR)/ezusb.Plo
@@ -4968,10 +4936,8 @@ uninstall-am: uninstall-bindings_cxx_lib
 .PRECIOUS: Makefile
 
 
-src/libdrivers.o: src/libdrivers.la \
-               src/libdrivers_head.la src/libdrivers_tail.la
-       $(AM_V_CCLD)$(LINK) src/libdrivers_head.la src/libdrivers.la \
-               src/libdrivers_tail.la
+src/libdrivers.o: src/libdrivers.la
+       $(AM_V_CCLD)$(LINK) src/libdrivers.la
 src/libdrivers.lo: src/libdrivers.o
        $(AM_V_GEN)echo "# Generated by libtool" > $@
        $(AM_V_at)echo "pic_object='libdrivers.o'" >> $@
--- a/src/driver_list_start.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file is part of the libsigrok project.
- *
- * Copyright (C) 2017 Marcus Comstedt <[email protected]>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <libsigrok/libsigrok.h>
-#include "libsigrok-internal.h"
-
-/*
- * This marks the start of the driver list. This file must be linked
- * before any actual drivers.
- */
-
-SR_PRIV const struct sr_dev_driver *sr_driver_list__start[]
-       __attribute__((section (SR_DRIVER_LIST_SECTION),
-                      used, aligned(sizeof(struct sr_dev_driver *))))
-  = { NULL /* Dummy item, as zero length arrays are not allowed by C99 */ };
--- a/src/driver_list_stop.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file is part of the libsigrok project.
- *
- * Copyright (C) 2017 Marcus Comstedt <[email protected]>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-#include <glib.h>
-#include <libsigrok/libsigrok.h>
-#include "libsigrok-internal.h"
-
-/*
- * This marks the end of the driver list. This file must be linked
- * after any actual drivers.
- */
-
-SR_PRIV const struct sr_dev_driver *sr_driver_list__stop[]
-       __attribute__((section (SR_DRIVER_LIST_SECTION),
-                      used, aligned(sizeof(struct sr_dev_driver *))))
-  = { NULL /* Dummy item, as zero length arrays are not allowed by C99 */ };
--- a/src/drivers.c
+++ b/src/drivers.c
@@ -45,7 +45,7 @@ SR_API void sr_drivers_init(struct sr_co
 
        array = g_array_new(TRUE, FALSE, sizeof(struct sr_dev_driver *));
 #ifdef HAVE_DRIVERS
-       for (const struct sr_dev_driver **drivers = sr_driver_list__start + 1;
+       for (const struct sr_dev_driver **drivers = sr_driver_list__start;
             drivers < sr_driver_list__stop; drivers++)
                g_array_append_val(array, *drivers);
 #endif
--- /dev/null
+++ b/src/libdrivers.ld
@@ -0,0 +1,9 @@
+SECTIONS
+{
+       __sr_driver_list : {
+               sr_driver_list__start = .;
+               *(__sr_driver_list)
+               sr_driver_list__stop = .;
+       }
+}
+INSERT AFTER .data;

Reply via email to