Opened 4 years ago

Closed 4 years ago

#9634 closed defect (worksforme)

rpcbind needs /usr/include/rpcsvc/{yp,ypclnt}.h

Reported by: bdubbs@… Owned by: blfs-book@…
Priority: normal Milestone: 8.1
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

I was trying to get nfs working and rpcbind does not build in 8.1-rc1.

I was able to copy {yp,ypclnt}.h to /usr/include/rpcsvc/ from another system and rpcbind built OK, but I have not yet tested nfs.

I do not know of we need to add a switch to glibc in lfs or just create a patch to add the missing headers.

I'm leaning towards a patch, depending upon the needs of other packages.

Change History (9)

comment:1 by Armin K, 4 years ago

Build rpcsvc-proto if you removed --enable-obsolete-rpc:

https://github.com/thkukuk/rpcsvc-proto

And then build libtirpc (part of BLFS)

And then build libnsl or use --enable-obsolete-nsl when building glibc:

https://github.com/thkukuk/libnsl

Last edited 4 years ago by Armin K (previous) (diff)

in reply to:  1 comment:2 by bdubbs@…, 4 years ago

Replying to Krejzi:

Build rpcsvc-proto if you removed --enable-obsolete-rpc:

I did use --enable-obsolete-rpc

And then build libnsl or use --enable-obsolete-nsl when building glibc:
https://github.com/thkukuk/libnsl

libnsl may be an option, but seems to be overkill for only two header files.

comment:3 by Armin K, 4 years ago

Pass --enable-obsolete-nsl when building glibc to install them.

comment:4 by ken@…, 4 years ago

I had libnsl hanging around (libnsl-libnsl-1.0.5 which is still the currnet release), but it fails in NIS stuff

nisplus/nis_call.c: In function ‘nis_server_cache_search’:
nisplus/nis_call.c:616:20: error: ‘uintptr_t’ undeclared (first use in this function); did you mean ‘intptr_t’?
  addr = (char *) ((uintptr_t) addr & ~(uintptr_t) 7);
                    ^~~~~~~~~
                    intptr_t

and goes downhill after that.

Looks as if glibc does need to be rebuilt.

comment:5 by bdubbs@…, 4 years ago

That can be fixed fairly easily with

#include <stdint.h>

in the appropriate file.

I had the same error in libtirpc.

in reply to:  5 comment:6 by ken@…, 4 years ago

Replying to bdubbs@…:

That can be fixed fairly easily with

#include <stdint.h>

in the appropriate file.

I had the same error in libtirpc.

Oh well, I'll try that - I thought that since I'm still in chroot I could just rebuild glibc, exit and reenter to be sure, and then continue. But apart from the fairly obvious need to not symlink /usr/libgcc for a rebuild, rebuilding fairly quickly failed with

make[2]: Entering directory '/building/glibc-2.26/sunrpc'
gcc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include -isystem /usr/include   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build -include /building/glibc-2.26/build/config.h rpc_main.c \
        -o /building/glibc-2.26/build/sunrpc/cross-rpc_main.o -MMD -MP -MF /building/glibc-2.26/build/sunrpc/cross-rpc_main.o.dt -MT /building/glibc-2.26/build/sunrpc/cross-rpc_main.o -c
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include-fixed/syslimits.h:7:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include-fixed/limits.h:34,
                 from /usr/include/sys/param.h:26,
                 from rpc_main.c:45:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include-fixed/limits.h:194:61: error: no include path in which to search for limits.h
 #include_next <limits.h>  /* recurse down to the real one */
                                                             ^
make[2]: *** [Makefile:178: /building/glibc-2.26/build/sunrpc/cross-rpc_main.o] Error 1

comment:7 by ken@…, 4 years ago

/me swears, /lib/cpp now fails its sanity check in configure.

I'll write off this build and wait for consensus.

comment:8 by Armin K, 4 years ago

This fixed libnsl on my side:

sed -i "/string.h/a #include <stdint.h>" src/nisplus/nis_call.c

comment:9 by bdubbs@…, 4 years ago

Resolution: worksforme
Status: newclosed

From the latest parameters for glibc. nfs3 works fine. Closing.

Note: See TracTickets for help on using tickets.