bug-gnulib
[Top][All Lists]
Advanced

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

Re: backupfile and backup-rename are introducing the same object to make


From: Bruno Haible
Subject: Re: backupfile and backup-rename are introducing the same object to make
Date: Thu, 26 Jan 2023 11:19:39 +0100

(GalaxyMaster) wrote:
> My use case in not standard since I am actually building
> these into a shared library using libtool, so libtool sees the same object 
> file
> listed twice and tries to resolve it by renaming one of them and then includes
> both in the resulting link command to produce a shared object.

Indeed, this explains why you get a link error then.

> I am building a Linux distribution from ground up.
> 
> >   - building what kind of library or binary in which way?
> 
> I am basically building what is directly against GNU Lib's philosophy (section
> 2.2 of the manual), a shared library containing every single compilable module
> with all functions defined as weak symbols.  ...
> 
> I clearly understand that my use case is not something supported or endorsed 
> by
> the GNU Lib project and am not trying to change that, but it is another avenue
> to test stuff, which may be valueable to the project.

I have nothing against experiments. But you have to take into account that
GNU gnulib (that's the actual name, not "GNU Lib") does not attempt to have
backwards compatibility constraints as usual for shared libraries. This is
written in the documentation
  https://www.gnu.org/software/gnulib/manual/html_node/Steady-Development.html
and can be highlighted by a few entries of the NEWS file:

            getprogname     The include file is changed from "getprogname.h"
                            to <stdlib.h>.

This means that source code that uses gnulib needs adaptation.

            scratch_buffer  The function 'gl_scratch_buffer_dupfree' is removed.

            careadlinkat    This module no longer provides the careadlinkatcwd
                            function.

A function was removed. Binaries that used this function would no longer work.

            diacrit         This deprecated module is removed.

A module with all its functions was removed. Binaries that used it would no
longer work.

            read-file       The functions provided by this module now take an
                            'int flags' argument to modify the file reading
                            behavior.  The read_binary_file function has been
                            removed as it is no longer necessary.

These are backward-incompatible changes on existing function names.

            fatal-signal    The function that you pass to at_fatal_signal now
                            takes the signal as argument.

Likewise.

You need to think about how you will handle these changes.

Because if you don't handle these changes, you are stuck with a gnulib
snapshot from 2023 for all times, and in the year 2030 it will be useless
to ship seven years old code.

Bruno






reply via email to

[Prev in Thread] Current Thread [Next in Thread]