David Ronis wrote: > libudev/libudev-monitor.c: In function 'udev_monitor_new_from_socket': > libudev/libudev-monitor.c:142: error: 'SOCK_CLOEXEC' undeclared (first > use in this function) > libudev/libudev-monitor.c:142: error: (Each undeclared identifier is > reported only once > libudev/libudev-monitor.c:142: error: for each function it appears in.) > libudev/libudev-monitor.c: In function 'udev_monitor_new_from_netlink': > libudev/libudev-monitor.c:199: error: 'SOCK_CLOEXEC' undeclared (first > use in this function) > > I gather this is because my libc is too old (libc-2.7). I'm not going > to upgrade that just now. Is there another workaround? Nothing that the udev maintainers support... The workaround I employed before I rebuilt this system with a newer glibc (for other reasons) was to modify the system headers to create inline implementations of the various new syscalls that were required at the time (this was around udev-143 or so: it required inotify_* and signalfd -- though I should note that glibc-2.7 doesn't have either of those, either). I also added the required struct and flag values. I believe this is more of a problem with socket(), though, since you're replacing a function that your headers already have a prototype for. Not sure how an extern in glibc, and an inline in the headers, which each do different things, will coexist.
Attachment:
signature.asc
Description: OpenPGP digital signature