package/libnss: fix build failure on RHEL 7 using -DLINUX
authorGiulio Benetti <giulio.benetti@benettiengineering.com>
Wed, 8 Jan 2020 17:07:44 +0000 (18:07 +0100)
committerYann E. MORIN <yann.morin.1998@free.fr>
Wed, 8 Jan 2020 21:58:28 +0000 (22:58 +0100)
commitde676e0d2767ad60d44fa2c4dd058ef8f131d3fa
tree0fc53d94e2d5ac0a7064fc4dee5b4868c34a783d
parente1e54f71ef85b558affce1ee28efaefe160665b1
package/libnss: fix build failure on RHEL 7 using -DLINUX

NSS Makefile emits -DLINUX to OS_CFLAGS only if OS_TEST=Linux when
building for Target. But nsinstall.c is a host utility and it uses
NATIVE_FLAGS instead of OS_CFLAGS, this is why -DLINUX is not emitted.
This is necessary for the case one builds for Target OS Linux on a Host
OS that is not Linux.

After discussing upstream [*], it turned out that our current patch,
introduced with commit fe4b47a12181 (package/libnss: fix build failure
on RHEL 7) to fix the bug, is wrong. The best way to fix it is to append
-DLINUX to NATIVE_FLAGS in libnss.mk.

[*] https://bugzilla.mozilla.org/show_bug.cgi?id=1603398

So let's append -DLINUX to NATIVE_FLAGS after HOST_CFLAGS to make sure
<getopt.h> is included, since in nsintall.c it is included only if LINUX
macro is defined and this caused the build failure not finding getopt
functions and macros in some build environment(i.e. RHEL 7). On other
build environments getopt.h is indirectly included by unistd.h this is
why it worked on them.

This reverts commit fe4b47a12181b89eecb9a8e324f1ad053147f948.

Fixes:
    http://autobuild.buildroot.net/results/797/797f07ff757e7972d8c96b6a9f6abe68d17e0808/

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
[yann.morin.1998@free.fr:
  - meld the two commits into one
  - update and rearrange the commit log accordingly
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/libnss/0003-Bug-1603398-Fix-nsinstall.c-build-failure-on-RHEL-7.patch [deleted file]
package/libnss/libnss.mk