tree 4f48b22e9838385d845a85a14ade9e523b1c2814
parent f25d03d75d3504e71b1fcb7cee74c0d2cba1cda0
author Nicolas Iooss <nicolas.iooss@m4x.org> 1564522839 +0200
committer Nicolas Iooss <nicolas.iooss@m4x.org> 1567356295 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCAAdFiEERLrjEL1V/i0DKU9qwZFBXzQNqqAFAl1r9YcACgkQwZFBXzQN
 qqDIIA/3V7OYyxoTz6AV0Qss9OEmsWqFp4XiOiV+pZhVjECSLqR8ucfAHsFToOSj
 nb72Gq++Wdup79paoTBba13+VRGoReCbySaMR7qUE6/ma4zm76tyUXWNSikQh3Wm
 s5QZ+CGucqMKmCI/7Ne45U7F1NqGHhdaUJuvcUdoqL7xNn5bZvcwUZFSjZ1TcX4X
 PIEF9ziW7ojnAa3MgmTgYyy4fn1uEDCVwdmgHmcVeYKz10J7a+qEeH/YyQaxGcXX
 Oq9M0TcwwN117l8VPWoOu95r2QL3UTA0qUNhAkKNJaWZjHAcO6GG3d27vrjSLAVw
 3tpA9gcBO+5jQ4EIPcWMUj6Yw2PSz7m0861HTf6lcAqoIhPRq06oQtX979aWueot
 1Jec8veNoo0AfGXHY7175L8LHwhVE1TcJpbfBBjtDNIzZJh0vvsrx/u/yeBYf/JZ
 3duL5h0MoKAmxWihH2WeLbRFJ+PixmJzY1JSP9gAP/xedsBl6pKm73G5H868fi3u
 GnuoV0hv63h5FH3wV1AiLXVtISHC1W5ItlU8TtRviIZA2sHDwIhxPAyQeUMLU5uX
 dXLu9HKjQz5rX1mthJHWxUEbjXjoqac8wHhvSzTTEOSkSjSulmjrjdk7cGu8LdQs
 +XGxiNKZ73HQ0/THhcw+JdtS1KcJc+/XKqebwR9nh5wdQQ6JGQ==
 =CqJ9
 -----END PGP SIGNATURE-----

libsemanage: include internal header to use the hidden function prototypes

When functions from libsemanage calls other functions that are exported,
these functions need to be "wrapped" using hidden_proto() macro. This is
done in headers such as "user_internal.h". Several functions in
genhomedircon.c are not doing this, which makes building with -flto
fail with errors such as:

    /usr/bin/ld: /tmp/libsemanage.so.1.KebOLC.ltrans1.ltrans.o: in
    function `user_sort_func':
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:758:
    undefined reference to `semanage_user_get_name'
    /usr/bin/ld:
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:758:
    undefined reference to `semanage_user_get_name'
    /usr/bin/ld: /tmp/libsemanage.so.1.KebOLC.ltrans1.ltrans.o: in
    function `fcontext_matches':
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:240:
    undefined reference to `semanage_fcontext_get_expr'
    /usr/bin/ld:
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:248:
    undefined reference to `semanage_fcontext_get_type'
    /usr/bin/ld: /tmp/libsemanage.so.1.KebOLC.ltrans1.ltrans.o: in
    function `add_user.isra.0':
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:992:
    undefined reference to `semanage_user_get_mlslevel'
    /usr/bin/ld: /tmp/libsemanage.so.1.KebOLC.ltrans1.ltrans.o: in
    function `write_context_file':
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:892:
    undefined reference to `semanage_user_key_create'
    /usr/bin/ld:
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:764:
    undefined reference to `semanage_user_get_name'
    /usr/bin/ld:
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:897:
    undefined reference to `semanage_user_query'
    /usr/bin/ld:
    /home/tkloczko/rpmbuild/BUILD/libsemanage-2.9-rc1/src/genhomedircon.c:905:
    undefined reference to `semanage_user_get_mlslevel'

Include the missing headers.

Fixes: https://github.com/SELinuxProject/selinux/issues/169

Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
