Because I'm going to talk about three different files all with the same name (capability.h) I will identify them this way:
cap_main is located in /usr/src/linux-headers-3.13.0-43/include/linux
cap_uapi is located in /usr/src/linux-headers-3.13.0-43/include/uapi/linux
cap_orig is located in /usr/include/linux

I originally linked cap_orig to /usr/include/sys.

The capability.h you mention below is cap_orig. It is nearly identical to cap_uapi. The main difference is that cap_uapi has __user in each type definition.

cap_t is defined in cap_main. cap_main includes cap_uapi. The problem is that the one in uapi doesn't work; I haven't tried the replacing cap_uapi with cap_orig yet. Here is the first part of the error:
       CC     ntpd.o
     In file included from /usr/include/sys/capability.h:15:0,
                      from ntpd.c:108:
/usr/include/uapi/linux/capability.h:43:10: error: expected ‘=’,‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
      } __user *cap_user_header_t;
               ^
Note that the error occurs after the __user.

Other comments below.

On 12/14/2014 8:13 PM, William Unruh wrote:
On 2014-12-15, Harlan Stenn <st...@ntp.org> wrote:
Brent Gordon writes:
...

I had the same problem that David Taylor had with timepps.h being in
/usr/include/sys instead of /usr/include.  In addition, capability.h was
in /usr/include/linux instead of /usr/include/sys.  Both issues were
fixed with soft links.

If you need to link both copies of timepps.h then your distro has made
changes that are "not the same" as what everybody else is doing.

I only have one copy of timepps.h, which was linked from /usr/include/sys to /usr/include/, per Brian Inglis' suggestion in a different thread.

Mageia 3 capability.h is also in /usr/include/linux and timepps.h does
not exist. (not does a ppstools package)

I previously installed ppstools because the whole purpose of compiling NTP was to experiment with pps.


...

The next trick will be for you to figure out why cap_t isn't being found
in the place others find it (sys/capability.h).

This is a brand new install of Ubuntu, so files are where the distribution put them.

This is the only mention of cap_t in capability.h on my system:

/* Note, cap_t, is defined by POSIX (draft) to be an "opaque" pointer to
    a set of three capability sets.  The transposition of 3*the
    following structure to such a composite is better handled in a
    user library since the draft standard requires the use of
    malloc/free etc.. */
_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions

Reply via email to