Commit Graph

8 Commits

Author SHA1 Message Date
Yann E. MORIN
22069232c2 package/ustr: really fix ldconfig
In 99067c1 (package/ustr: don't run ldconfig), we tried to fix parallel
build issues, caused by running ldconfig, by not running ldconfig.

We borked that fix, as build issues still crop up from time to time:
ldconfig is still run because our override is not accounted for by
ustr's buildsystem. Instead of overriding ldconifg at build time, we
need to override it at configure time.

Just do that.

Fixes:
    http://autobuild.buildroot.org/results/7b1/7b12f00612da4ad8dffe0c8010b95db881630b17/
    http://autobuild.buildroot.org/results/242/24209ba13f56889357024b0e460d508b7a03d1d2/
    http://autobuild.buildroot.org/results/963/963141370a9b127f473a7fae161656a6b0a4f33b/

(Those are the only three build issues in the more-than-a-month since we
initially tried to fix that.)

To be noted: upstream has accepted my patch, plus they completely
removed calls to ldconfig altogether. Add a comment so we don't forget
to remove our workaround when we bump.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-09-26 22:37:51 +02:00
Yann E. MORIN
99067c1598 package/ustr: don't run ldconfig
The ustr Makefile.in (as introduced by the Debian patch we apply), is
probably not parallel-safe:

  402 install: install-opt install-dbg
  403
  404 install-opt: install-dirs install-opt-lib install-common
  405
  406 install-dbg: install-dirs install-dbg-lib install-common
  407
  408 install-opt-lib install-dbg-lib install-common: install-dirs
  [--SNIP--]
  424 install-opt-lib: $(OPT_LIB_STATIC) $(OPT_LIB_SHARED) ustr.pc
  425         @echo Installing files
  426         install -m 644 -t $(DESTDIR)$(libdir) $(OPT_LIB_STATIC)
  427         install -m 755 -t $(DESTDIR)$(libdir) $(OPT_LIB_SHARED)
  428         -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHARED_NAME)
  429         ln -s $(OPT_LIB_SHARED) $(DESTDIR)$(libdir)/$(OPT_LIB_SHARED_NAME)
  430         -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV)
  431         ln -s $(OPT_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV)
  432         -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV_BSO)
  433         ln -s $(OPT_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV_BSO)
  434         $(LDCONFIG) -n $(DESTDIR)$(libdir)
  435         install -pm 644 -t $(DESTDIR)$(libdir)/pkgconfig ustr.pc
  436
  437 install-dbg-lib: $(DBG_LIB_STATIC) $(DBG_LIB_SHARED) ustr-debug.pc
  438         @echo Installing files
  439         install -m 644 -t $(DESTDIR)$(libdir) $(DBG_LIB_STATIC)
  440         install -m 755 -t $(DESTDIR)$(libdir) $(DBG_LIB_SHARED)
  441         -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHARED_NAME)
  442         ln -s $(DBG_LIB_SHARED) $(DESTDIR)$(libdir)/$(DBG_LIB_SHARED_NAME)
  443         -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV)
  444         ln -s $(DBG_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV)
  445         -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV_BSO)
  446         ln -s $(DBG_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV_BSO)
  447         $(LDCONFIG) -n $(DESTDIR)$(libdir)
  448         install -pm 644 -t $(DESTDIR)$(libdir)/pkgconfig ustr-debug.pc

As Thomas already noticed [0], the two interesting rules above are not
dependent one on the other, so can be run in parallel. So, while one is
doing its rm'n'ln dance, the other can be running an ldconfig, which has
the side effect of creating the missing symlinks. So, we can see this
sequence:

    install-opt-lib:                        install-dbg-lib:
                                                ldconfig
        rm -f .../$(OPT_LIB_SHAREDEV)            \
                                                  `-> symlink(..., .../$(OPT_LIB_SHAREDEV))
        ln -s .../$(OPT_LIB_SHAREDEV)

In this case, ldconfig uses the opportunity-window between the rm and
the ln to create the link; so the ln does not work, as the target
already exist.

We fix that by not running ldconfig at all in Buildroot, we just pass
LDCONFIG=/bin/true .

Fixes (hopefully, since I was not even able to reproduce the failure):
    http://autobuild.buildroot.org/?reason=ustr-1.0.4
    http://autobuild.buildroot.org/results/936/93626f55625ed7900c147bfd79ff7802366639b1/
    http://autobuild.buildroot.org/results/18b/18b6ec537da9e9055f58a8649c0719dc64df1bcf/
    [...]

[0] http://lists.busybox.net/pipermail/buildroot/2016-May/161923.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-08-19 11:48:46 +02:00
Gustavo Zacarias
e42e268a24 ustr: comma separate licenses
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-15 22:03:19 +01:00
Ryan Barnett
525dfab33c ustr: use Debian patches to compile w/ GCC 5.x
To fix issues with compiling with GCC 5.x, switch to utilizing the
Debian patches for cross compiling. Debian has been maintaining
patches for the ustr package since it appears that the ustr project
hasn't been active since 2008.

The Debian patches switch from a makefile based build to autotools
based build. This also means that the patch that was being carried
for cross compiling is no longer needed.

ustr is a dependency of libsemanage, which now builds fine again with
these patches applied.

Fixes:
    http://autobuild.buildroot.org/results/f46/f46430c45973dfe39976453f5a91a555ed7bfa9a/
    http://autobuild.buildroot.org/results/e98/e98c82130efaaed29682cf31c1a754278ff3e547/
    ...and many more

Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com>
[yann.morin.1998@free.fr: build the shared lib at build time, not
install time]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
CC: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-12 14:34:51 +01:00
Sergio Prado
c38ea9a59b ustr: fix build issue with GCC5
This patch fixes the following error messages:

ustr-cmp-code-so-dbg.o: In function `ustr_pool_make_subpool':
ustr-cmp-dbg-code.c:(.text+0x0): multiple definition of `ustr_pool_make_subpool'
ustr-b-code-so-dbg.o:ustr-b-dbg-code.c:(.text+0x0): first defined here
ustr-cmp-code-so-dbg.o: In function `ustr_pool_clear':
ustr-cmp-dbg-code.c:(.text+0x44): multiple definition of `ustr_pool_clear'
ustr-b-code-so-dbg.o:ustr-b-dbg-code.c:(.text+0x44): first defined here
ustr-cmp-code-so-dbg.o: In function `ustr_pool_free':
...

That's because the application assumes gnu89 behaviour of "inline" and
"extern inline", but gcc5 defaults to gnu11. So we need to force gnu89
in the compilation flags.

Fixes:
http://autobuild.buildroot.org/results/fde02ae2883a058b98e57ba087466d820ab1a5eb/
http://autobuild.buildroot.org/results/e04849c31e2a2528282ce6cdcf69aa10076d721d/
http://autobuild.buildroot.org/results/7b3295e711fc51907c311adb63f0b7d06a90a7b9/
...and many others.

Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-11-22 10:13:05 +01:00
Luca Ceresoli
b0b9606530 Remove trailing slash from all package site URLs
The recommended form is without the trailing slash. Buildroot will add a slash
between FOO_SITE and FOO_SOURCE as appropriate.

Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-10 20:40:08 +01:00
Matt Weber
606a39ef12 ustr: fix license name
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-09 22:58:08 +01:00
Clayton Shotwell
5cefca4cc3 ustr: new package
[Thomas:
 - Fix typo in patch description.
 - Remove trailing whitespace in Config.in.
 - Fix Config.in comment to match what's specified in the Buildroot
   manual.
 - Adjust .mk logic to use BR2_STATIC_LIBS vs. BR2_SHARED_LIBS instead
   of BR2_PREFER_STATIC_LIB, and therefore support the installation of
   only the shared library.
 - Remove the libustr-debug library from the target and staging
   directories, it's the same as libustr, except that it's compiled
   with debugging symbols.
 - Always install only the shared variant of the library for
   host-ustr.]

Signed-off-by: Clayton Shotwell <clshotwe@rockwellcollins.com>
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-01-01 21:07:28 +01:00