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
2016-08-16 08:05:05 +02:00
2016-08-19 11:25:39 +02:00
2016-08-19 11:26:43 +02:00
2016-08-19 11:48:46 +02:00
2016-08-14 16:11:46 +02:00
2016-04-18 23:38:34 +02:00
2016-08-17 08:49:38 +02:00
2016-07-31 23:14:33 +02:00
2016-08-17 08:49:38 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches
Description
No description provided
Readme 98 MiB
Languages
Makefile 70.7%
Python 9.6%
C 8.3%
Shell 6.3%
PHP 1.6%
Other 3.2%