[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#881932: marked as done (libdebian-installer FTBFS with gcc-8: multiple definitions of)



Your message dated Sun, 19 Nov 2017 18:41:07 +0100
with message-id <20171119174107.43ba4sj4mu5n5fkp@aurel32.net>
and subject line Re: Bug#881932: libdebian-installer FTBFS with gcc-8: multiple definitions of
has caused the Debian Bug report #881932,
regarding libdebian-installer FTBFS with gcc-8: multiple definitions of
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
881932: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881932
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: libdebian-installer
Version: 0.111
Tags: patch
User: helmutg@debian.org
Usertags: rebootstrap

libdebian-installer fails to build from source when built with gcc-8. It
seems gcc-8 has become more strict in terms of multiple defined
constants. As it happens, libdebian-installer defines constants of type
di_parser_fieldinfo both in headers and C files. As the headers get
included into multiple translation units, the constants are duplicated.

I believe that the solution is to mark them extern in the headers. Since
they are still defined (with values) in the C files that'll not make
them go missing. Please consider applying the attached patch.

Once gcc-8 becomes the default, this bug will become serious.

I would like to thank James Clarke for helping me gain an understanding
of the issue at hand. Consider the patch joint work.

Helmut
diff --minimal -Nru libdebian-installer-0.111/debian/changelog libdebian-installer-0.111+nmu1/debian/changelog
--- libdebian-installer-0.111/debian/changelog	2017-06-25 18:42:05.000000000 +0200
+++ libdebian-installer-0.111+nmu1/debian/changelog	2017-11-16 17:48:06.000000000 +0100
@@ -1,3 +1,11 @@
+libdebian-installer (0.111+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTBFS with gcc-8: Mark di_parser_fieldinfo constants extern.
+    (Closes: #-1)
+
+ -- Helmut Grohne <helmut@subdivi.de>  Thu, 16 Nov 2017 17:48:06 +0100
+
 libdebian-installer (0.111) unstable; urgency=medium
 
   [ Aurelien Jarno ]
diff --minimal -Nru libdebian-installer-0.111/include/debian-installer/package_internal.h libdebian-installer-0.111+nmu1/include/debian-installer/package_internal.h
--- libdebian-installer-0.111/include/debian-installer/package_internal.h	2017-06-24 19:14:56.000000000 +0200
+++ libdebian-installer-0.111+nmu1/include/debian-installer/package_internal.h	2017-11-16 17:48:04.000000000 +0100
@@ -33,7 +33,7 @@
  * @internal
  * parser info
  */
-const di_parser_fieldinfo
+extern const di_parser_fieldinfo
   internal_di_package_parser_field_status,
   internal_di_package_parser_field_essential,
   internal_di_package_parser_field_priority,
diff --minimal -Nru libdebian-installer-0.111/include/debian-installer/packages_internal.h libdebian-installer-0.111+nmu1/include/debian-installer/packages_internal.h
--- libdebian-installer-0.111/include/debian-installer/packages_internal.h	2012-10-20 13:07:58.000000000 +0200
+++ libdebian-installer-0.111+nmu1/include/debian-installer/packages_internal.h	2017-11-16 17:48:06.000000000 +0100
@@ -84,7 +84,7 @@
 di_parser_write_entry_next
   internal_di_packages_parser_write_entry_next;
 
-const di_parser_fieldinfo
+extern const di_parser_fieldinfo
   internal_di_packages_parser_field_package;
 
 /** @} */

--- End Message ---
--- Begin Message ---
Version: 0.112

On 2017-11-16 19:11, Helmut Grohne wrote:
> Source: libdebian-installer
> Version: 0.111
> Tags: patch
> User: helmutg@debian.org
> Usertags: rebootstrap
> 
> libdebian-installer fails to build from source when built with gcc-8. It
> seems gcc-8 has become more strict in terms of multiple defined
> constants. As it happens, libdebian-installer defines constants of type
> di_parser_fieldinfo both in headers and C files. As the headers get
> included into multiple translation units, the constants are duplicated.
> 
> I believe that the solution is to mark them extern in the headers. Since
> they are still defined (with values) in the C files that'll not make
> them go missing. Please consider applying the attached patch.
> 
> Once gcc-8 becomes the default, this bug will become serious.
> 
> I would like to thank James Clarke for helping me gain an understanding
> of the issue at hand. Consider the patch joint work.
> 
> Helmut

This was fixed in version 0.112, but hasn't been closed automatically
due to a non-breakable space which ended up in the changelog... Closing
it manually.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

--- End Message ---

Reply to: