While building ntp 4.2.4p6 for use with LinuxPPS I noticed:
configure: WARNING: linux/serial.h: present but cannot be compiled
configure: WARNING: linux/serial.h: check for missing prerequisite
headers?
configure: WARNING: linux/serial.h: see the Autoconf documentation
configure: WARNING: linux/serial.h: section "Present But Cannot Be
Compiled"
configure: WARNING: linux/serial.h: proceeding with the preprocessor's
result
configure: WARNING: linux/serial.h: in the future, the compiler will
take precedence
configure: WARNING: ## ------------------------------ ##
configure: WARNING: ## Report this to the ntp lists. ##
configure: WARNING: ## ------------------------------ ##
This was not the first time, but now I have to ask:
I this a problem on my Fedora 10 system, an issue with the ntp code or
something else?
Is anybody looking into this issue?
Please post!
Udo
udovdh> Hello, While building ntp 4.2.4p6 for use with LinuxPPS I noticed:
udovdh> configure: WARNING: linux/serial.h: present but cannot be compiled
udovdh> configure: WARNING: linux/serial.h: check for missing prerequisite headers?
udovdh> I this a problem on my Fedora 10 system, an issue with the ntp code
udovdh> or something else? Is anybody looking into this issue?
Apparently, compiling linux/serial.h on your platform requires some extra
headers.
If you look thru config.log you will see the section of code that runs to
figure out if linux/serial.h is present and compilable.
If you can figure out what other headers are needed to run that test without
complaint I can add them to the test for this header in configure.ac
--
Harlan Stenn <st...@ntp.org>
http://ntpforum.isc.org - be a member!
I found:
configure:49412: checking linux/serial.h usability
configure:49424: gcc -c -m32 -march=i686 -mtune=c3-2 -pipe -mmmx -msse
-fomit-frame-pointer -ffast-math -finline-functions -mfpmath=sse,387 -
Os -pie -fPIE -Wall -Wcast-qual -Wmissing-prototypes -Wpointer-arith -
Wshadow -Wstrict-prototypes conftest.c >&5
In file included from conftest.c:246:
/usr/include/linux/serial.h:184: error: expected specifier-qualifier-
list before '__u32'
This is about the first __u32 in:
struct serial_rs485 {
__u32 flags; /* RS485 feature flags */
#define SER_RS485_ENABLED (1 << 0)
#define SER_RS485_RTS_ON_SEND (1 << 1)
#define SER_RS485_RTS_AFTER_SEND (1 << 2)
__u32 delay_rts_before_send; /* Milliseconds */
__u32 padding[6]; /* Memory is cheap, new
structs
are a royal PITA .. */
};
Which is the serial.h at /lib/modules/2.6.28.2/build/include/linux/
serial.h which is needed to build ntpd with LinuxPPS support:
http://wiki.enneenne.com/index.php/LinuxPPS_installation#The_userland_tools
(i.e.: see the links)
Currently I don't know how what the solution is.
Which version of the linux kernel are you using?
I can compile the following code on all my boxes.
#################################
# include <linux/serial.h>
struct serial_rs485 *serial;
#################################
uwe
I use Fedora 10 with kernel-headers-2.6.27.12-170.2.5.fc10.i386 and my
own kernel at 2.6.28.2 with ntp-pps-2.6.28-rc6-bis.diff.
That seems to (have been?) be a bug in recent versions.
http://markmail.org/message/xpche3qt3b6lsmey
http://www.google.com/search?q=linux%2Fserial.h+__u32
uwe
Thanks.
This means no change for ntpd and wait for the fix to land in the
mainline kernels?
Udo
uwe