Revert "libseccomp: don't build on ARC"
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Sun, 11 Apr 2021 22:38:50 +0000 (19:38 -0300)
committerEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 12 Apr 2021 00:21:48 +0000 (21:21 -0300)
commit013b1895ed78c9eeef020bdb53bf2784b8a7374d
tree34592a76655c2c664a264e54e403b85af1777d41
parent048e1d2d6380aae6c50b92ed9f863855ddf8823d
Revert "libseccomp: don't build on ARC"

This reverts commit b29e609701987072fbd991a9ffc203103f99b943.

Adding DEPENDS+=@!arc will cause a circular dependency, because some
packages select libseccomp based on a build option.

Commit e29483d7e ("libseccomp: workaround a recursive dependency") added
a workaround that was not properly documented, so I'll explain here.

The problem arises when libseccomp is selected depending on some config
option:

define Pakcage/foo
  DEPENDS=+FOO_SECCOMP:libseccomp

Even if the condition is correctly defined, excluding arc, such as:

define Package/foo/config
  config FOO_SECCOMP
    depends on !arc

the config generator will parse libseccomp's DEPENDS variable and
generate menuconfig statements like these:

config PACKAGE_foo
   select PACKAGE_libseccomp if FOO_SECCOMP
   depends on !FOO_SECCOMP || !arc

The last condition is always true because FOO_SECCOMP will always be
be false when arc is true.  The config generator is not able to
simplify/optimize the condition.

The circular dependecy occurs because FOO_SECCOMP depends on
PACKAGE_foo, and the redundant, always true line will make PACKAGE_foo
depend on FOO_SECCOMP.

As a workaround, we can add the 'depends on !arc' line to
Package/libseccomp/config, outside of the DEPENDS variable, so that the
redundant depends line line does not get generated.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Cc: Daniel Golle <daniel@makrotopia.org>
libs/libseccomp/Makefile