> On Jan 14, 2019, at 12:31 PM, Rodney W. Grimes 
> <free...@pdx.rh.cn85.dnsmgr.net> wrote:
> 
>> In message <201901141617.x0eghwqq035...@pdx.rh.cn85.dnsmgr.net>,
>> "Rodney W. Gri
>> mes" writes:
>>>> Author: nyan
>>>> Date: Mon Jan 14 06:34:54 2019
>>>> New Revision: 343011
>>>> URL: https://svnweb.freebsd.org/changeset/base/343011
>>>> 
>>>> Log:
>>>>  Use ${SRCTOP}/contrib/com_err/com_err.h instead of the installed com_err.
>>> h.
>>>>  This fixes build when com_err.h is not installed.
>>> 
>>> Isn't this the general state of affairs for almost all
>>> of the source tree?   I would rather see this solved
>>> in a general way, rather than sprinkly all this
>>> -I${SRCTOP} all over in the tree.
>> 
>> Agreed however in practice this is fixed when discovered while working
>> on other issues/problems/projects.
> 
> This adds another special case that should not exist.
> 
>>> 
>>> It use to be (and maybe still is) required that you run
>>> cd $DRCTOP && make includes
>>> if you expected new source code to compile.  I expect
>>> this has changed, but the just of it should work in
>>> some aspect.
>> 
>> This fixes the potential bug of requiring a header file to be
>> installed. I suspect this to be an oversight at the time.
>> 
>> Good that it's fixed now.
> 
> Something is wrong, as infact com_err.h *IS*
> installed as /usr/include/com_err.h
> 
> diff /usr/include/com_err.h /usr/src/contrib/com_err/com_err.h

Hi Rod,
        In the full case, yes. It’s relying on the staging process for 
buildworld, which builds and installs everything in one phase as part of “make 
libraries”.
        The list of kerberos libraries which rely on libcom_err is potentially 
incomplete, so there’s a chance that it’s not installing the headers in time.
        I’ll leave it as an exercise to the reader (in part, because I’d rather 
not spending time chasing down this issue, as there are other bigger fish to 
fry), to find the underlying issue in Makefile.inc1 (in my not so humble 
opinion, kerberos/lib is broken down a bit too much in Makefile.inc1, which 
obfuscates dependencies, makes it extremely easy to miss them when 
adding/accounting for libraries, and also plugs too much knowledge into a 
separate location in the build system, duplicating efforts).
Cheers,
-Enji

2734 _prebuild_libs= ${_kerberos5_lib_libasn1} \
2735                 ${_kerberos5_lib_libhdb} \
2736                 ${_kerberos5_lib_libheimbase} \
2737                 ${_kerberos5_lib_libheimntlm} \
2738                 ${_libsqlite3} \
2739                 ${_kerberos5_lib_libheimipcc} \
2740                 ${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
2741                 ${_kerberos5_lib_libroken} \
2742                 ${_kerberos5_lib_libwind} \
2743                 lib/libbz2 ${_libcom_err} lib/libcrypt \
…
2878 .if ${MK_KERBEROS} != "no"
2879 kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L
2880 kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
2881     kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \
2882     kerberos5/lib/libwind__L lib/libsqlite3__L
2883 kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L 
kerberos5/lib/libkrb5__L \
2884     kerberos5/lib/libroken__L lib/libcom_err__L
2885 kerberos5/lib/libhx509__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
2886     secure/lib/libcrypto__L kerberos5/lib/libroken__L 
kerberos5/lib/libwind__L
2887 kerberos5/lib/libkrb5__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
2888     lib/libcrypt__L secure/lib/libcrypto__L kerberos5/lib/libhx509__L \
2889     kerberos5/lib/libroken__L kerberos5/lib/libwind__L \
2890     kerberos5/lib/libheimbase__L kerberos5/lib/libheimipcc__L
2891 kerberos5/lib/libroken__L: lib/libcrypt__L
2892 kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L
2893 kerberos5/lib/libheimbase__L: lib/libthr__L
2894 kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L 
kerberos5/lib/libheimbase__L lib/libthr__L
2895 .endif
...
2903 .if ${MK_KERBEROS} != "no"
2904 _kerberos5_lib= kerberos5/lib
2905 _kerberos5_lib_libasn1= kerberos5/lib/libasn1
2906 _kerberos5_lib_libhdb= kerberos5/lib/libhdb
2907 _kerberos5_lib_libheimbase= kerberos5/lib/libheimbase
2908 _kerberos5_lib_libkrb5= kerberos5/lib/libkrb5
2909 _kerberos5_lib_libhx509= kerberos5/lib/libhx509
2910 _kerberos5_lib_libroken= kerberos5/lib/libroken
2911 _kerberos5_lib_libheimntlm= kerberos5/lib/libheimntlm
2912 _libsqlite3= lib/libsqlite3
2913 _kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc
2914 _kerberos5_lib_libwind= kerberos5/lib/libwind
2915 _libcom_err= lib/libcom_err
2916 .endif
...
2949 .for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs}
2950 ${_lib}__L: .PHONY .MAKE
2951 .if !defined(_MKSHOWCONFIG) && exists(${.CURDIR}/${_lib})
2952         ${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \
2953                 cd ${.CURDIR}/${_lib}; \
2954                 if [ -z "${NO_OBJWALK}" ]; then ${MAKE} MK_TESTS=no 
DIRPRFX=${_lib}/ obj; fi; \
2955                 ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ all; \
2956                 ${MAKE} MK_TESTS=no DIRPRFX=${_lib}/ install
2957 .endif
2958 .endfor

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to