OK! Investigating why
A "grep -nre LIBNSS_FILES_SO /usr/*" gives me:
In /usr/include/gnu/lib-names.h:25:
>#define LIBNSS_FILES_SO "libnss_files.so.2"
which is LIBNSS_FILES_SO only existing definition.
Irrelevant stuff in /usr/lib/perl5/5.00503/i386-linux/gnu/lib-names.ph
Irrelevant stuff in /usr/src/glibc/glibc-2.1.2/ChangeLog.7
And finally in /usr/src/glibc/glibc-2.1.2/nss/nsswitch.c:71, the line that
generate the make Error:
>static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15;
Which, with
>#define LIBNSS_FILES_SO "libnss_files.so.2"
would give something like:
>static const char *const __nss_shlib_revision = ".2";
The complete offending nss/nsswitch.c code being:
>#if !defined DO_STATIC_NSS || defined PIC
>/* String with revision number of the shared object files. */
>static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15;
>#endif
I definitely don't want DO_STATIC_NSS defined, which would have been the case
if I would have add --enable-static-nss to ./configure, which I haven't (as
recommended by INSTALL). So it's correct that this declaration get
compiled.
Therefore, it might only be that gnu/lib-names.h, where
LIBNSS_FILES_SO is defined hasn't been included. If i'm not wrong, the useful
content of this file is normally created on "make install" so is not supposed
to be available on the first make.
Indeed in nss/nsswitch.c, there's a
>#if !defined DO_STATIC_NSS || defined PIC
>#include <gnu/lib-names.h>
>#endif
just a few lines before the offending code.
I don't know what is the <official> include directory on this build. However,
having not barked at the "#include <gnu/lib-names.h>" line the build has
obviously found the file. Well, "find" tell me that there's only 2 lib-names.h
found on all my system. These are located in /usr/include/gnu and
/usr/src/glibc/glibc-2.1.2/gnu.
Since grep already told me that LIBNSS_FILES_SO is defined in the first file,
and that I doubt this build would rely on an already installed glibc it knows
nothing about, my build defintively included the second one.
/usr/src/glibc/glibc-2.1.2/gnu/lib-names.h has not really yet
been built since the glibc I'm building has obviously not been installed. It
reads as follow:
>/* This file is automatically generated.
> It defines macros to allow user program to find the shared
> library files which come as part of GNU libc. */
>#ifndef __GNU_LIB_NAMES_H
>#define __GNU_LIB_NAMES_H 1
>
>
>#endif /* gnu/lib-names.h */
Which bring me to my question:
How do I get get glibc-2.1.2/gnu/lib-names.h to have LIBNSS_FILES_SO defined
before glibc is built?
Any one has an idea of any other mysterious explanation?
--
Fran�ois Desloges
[EMAIL PROTECTED]
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]