Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Potential lurking issue with host rpaths
@ 2019-12-25 15:13 Yann E. MORIN
  2019-12-26 14:49 ` Thomas Petazzoni
  0 siblings, 1 reply; 2+ messages in thread
From: Yann E. MORIN @ 2019-12-25 15:13 UTC (permalink / raw)
  To: buildroot

Thomas, Arnout, Peter, All,

Consider the following situation for packages 'bar' and 'libfoo':
  - upstream bar has an optional dependency on libfoo
  - in Buildroot, host-bar does not depend on host-libfoo, because
    we do not need that dependency [0]
  - a third package (whatever, not in the dependency chain of host-bar)
    brings in host-libfoo into the build.

Now, let's look at what happens:

- without PPD
  - libfoo not installed on the host system
    - host-libfoo built before host-bar
      - bar links to libfoo
        - bar has an RPATH for another lib
          => OK
        - bar does not have an RPATH for another lib
          -> check-host-rpath errors out for host-bar
          => OK
    - host-libfoo built after host-bar
      -> bar not linked to libfoo
      => OK

  - libfoo installed on the host system
    - host-libfoo built before host-bar
      - bar links to host-libfoo
        - bar has an RPATH for another lib
          => OK
        - bar does not have an RPATH for another lib
          -> check-host-rpath errors out for host-bar
          => OK
    - host-libfoo built after host-bar
      - bar links to system libfoo
        - bar has an RPATH for another lib
          -> check-host-rpath OK for both host-bar and host-libfoo
          -> error at runtime: bar uses host-libfoo instead of system
             libfoo
          => KO, MISSED
        - bar does not have an RPATH for another lib
          -> check-host-rpath errors out for host-libfoo
          => OK [1]


- with PPD
  - libfoo not installed on the host system
    -> bar never linked to libfoo
    => OK

  - libfoo installed on the host system
    -> bar always linked to system libfoo
      - bar has an RPATH for another lib
        -> check-host-rpath OK for host-bar
        -> error at runtime: bar uses host-libfoo instead of system
           libfoo, *but* only once the final, complete host directory
           has been aggregated
        => KO, MISSED
      - bar does not have an RPATH for another lib
        -> check-host-rpath OK for host-bar
        => OK


So, in either case (PPD or no PPD), we do have an issue with optional
dependencies for host packages...


Now, the questions:
  - are those two issues for real, or did I miss something?
  - is they are real, how can we fix them?


[0] for example host-systemd does not depend on host-libselinux, because
    we only need systemctl, but systemd will always also build nspawn,
    which may link with libselinux if present.

[1] check-host-rpath errors out for host-libfoo instead of host-bar, so
    for the wrong package, but at least it errors out and we can notice
    the issue.


Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-12-26 14:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-25 15:13 [Buildroot] Potential lurking issue with host rpaths Yann E. MORIN
2019-12-26 14:49 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox