Build of v4.0.x fails : freeradius-devel/io/ring_buffer.h: No such file or directory
Hello, I've set up a build environment with libkqueue 2.1.0 and gcc 7.3.0 on RHEL 7.1. Now I'm trying to build FreeRADIUS v4.0.x, but I didn't go far. "configure" passed, but "make" fails very early with: (...) CC src/lib/io/ring_buffer.c src/lib/io/ring_buffer.c:27:10: fatal error: freeradius-devel/io/ring_buffer.h: No such file or directory #include <freeradius-devel/io/ring_buffer.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. Apparently the file is located in: ./lib/io/ring_buffer.h And I have "freeradius-devel -> include" So this is not working. Regards, Nicolas. This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Feb 16, 2018, at 10:22 AM, Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com> wrote:
I've set up a build environment with libkqueue 2.1.0 and gcc 7.3.0 on RHEL 7.1. Now I'm trying to build FreeRADIUS v4.0.x, but I didn't go far.
"configure" passed, but "make" fails very early with:
(...) CC src/lib/io/ring_buffer.c src/lib/io/ring_buffer.c:27:10: fatal error: freeradius-devel/io/ring_buffer.h: No such file or directory #include <freeradius-devel/io/ring_buffer.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
Hmm... that is odd. It used to work, and it builds on the travis automatic build system. I've pushed some rules to automatically create the relevant links. Alan DeKok.
I've set up a build environment with libkqueue 2.1.0 and gcc 7.3.0 on RHEL 7.1. Now I'm trying to build FreeRADIUS v4.0.x, but I didn't go far.
"configure" passed, but "make" fails very early with:
(...) CC src/lib/io/ring_buffer.c src/lib/io/ring_buffer.c:27:10: fatal error: freeradius-devel/io/ring_buffer.h: No such file or directory #include <freeradius-devel/io/ring_buffer.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
Hmm... that is odd. It used to work, and it builds on the travis automatic build system.
I've pushed some rules to automatically create the relevant links.
This didn't solve the issue. The full "make" output follows: CC jlibtool.c LN-SF src/util src/include HEADER src/include/attributes.h HEADER src/include/features.h HEADER src/include/missing.h HEADER src/include/tls.h HEADER src/include/rfc6677.h HEADER src/include/rfc3576.h HEADER src/include/rfc2865.h HEADER src/include/rfc7055.h HEADER src/include/rfc2869.h HEADER src/include/rfc4675.h HEADER src/include/rfc4072.h HEADER src/include/rfc4679.h HEADER src/include/rfc4372.h HEADER src/include/rfc3580.h HEADER src/include/rfc5176.h HEADER src/include/rfc7499.h HEADER src/include/rfc5447.h HEADER src/include/rfc6519.h HEADER src/include/rfc7155.h HEADER src/include/rfc4603.h HEADER src/include/rfc7930.h HEADER src/include/rfc7268.h HEADER src/include/rfc6572.h HEADER src/include/rfc5607.h HEADER src/include/rfc5090.h HEADER src/include/rfc5580.h HEADER src/include/rfc6930.h HEADER src/include/rfc4849.h HEADER src/include/rfc6929.h HEADER src/include/rfc4818.h HEADER src/include/rfc2866.h HEADER src/include/rfc5904.h HEADER src/include/rfc3162.h HEADER src/include/rfc2868.h HEADER src/include/rfc6911.h HEADER src/include/rfc2867.h HEADER src/include/vqp.h HEADER src/include/freeradius.h HEADER src/include/freeradius.snmp.h HEADER src/include/dhcpv6.h HEADER src/include/eap.aka.h HEADER src/include/eap.sim.h HEADER src/include/tacacs.h LN-SF src/protocols/ethernet src/include/ethernet LN-SF src/protocols/dhcpv6 src/include/dhcpv6 LN-SF src/protocols/dhcpv4 src/include/dhcpv4 LN-SF src/protocols/radius src/include/radius CC src/lib/io/ring_buffer.c src/lib/io/ring_buffer.c:27:10: fatal error: freeradius-devel/io/ring_buffer.h: No such file or directory #include <freeradius-devel/io/ring_buffer.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [build/objs/src/lib/io/ring_buffer.lo] Error 1 This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Feb 16, 2018, at 11:36 AM, Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com> wrote:
This didn't solve the issue.
Hmm.. which version of gmake are you using? They have a habit of changing it's behaviour. I've pushed another fix which should work, but you may have to do re-configure && then "make" Alan DeKok.
I have GNU Make 3.82 Still not working: make CC jlibtool.c LN-SF src/include src/freeradius-devel LN-SF src/include/io src/freeradius-devel/io (...) I assume this was supposed to create a link ? If so something went wrong, instead I have a file: cat src/freeradius-devel/io ../lib/io/ This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Feb 16, 2018, at 12:03 PM, Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com> wrote:
I have GNU Make 3.82
Still not working:
make CC jlibtool.c LN-SF src/include src/freeradius-devel LN-SF src/include/io src/freeradius-devel/io (...)
I assume this was supposed to create a link ?
Yes.
If so something went wrong, instead I have a file:
cat src/freeradius-devel/io ../lib/io/
Uh... that's a problem on your end then. You're not doing the build on a Linux machine. Soft links are special files, where the contents of the file are the actual link. But.. you can't "cat" a soft link: $ cat src/include/io cat: src/include/io: Is a directory because 'io' is a soft link to the directory. So it *cannot* be opened by the "cat" command. Instead, the OS reads src/include/io, dereferences it to src/lib/io, and then passes *that* handle to "cat". Which then complains it's not a directory. Don't use Windows. It makes things more difficult. Alan DEKok.
On Feb 16, 2018, at 12:03 PM, Chaigneau, Nicolas <nicolas.chaigneau@capgemini.com> wrote:
I have GNU Make 3.82
Still not working:
make CC jlibtool.c LN-SF src/include src/freeradius-devel LN-SF src/include/io src/freeradius-devel/io (...)
I assume this was supposed to create a link ?
Yes.
If so something went wrong, instead I have a file:
cat src/freeradius-devel/io ../lib/io/
Uh... that's a problem on your end then. You're not doing the build on a Linux machine.
Soft links are special files, where the contents of the file are the actual link. But.. you can't "cat" a soft link:
$ cat src/include/io cat: src/include/io: Is a directory
because 'io' is a soft link to the directory. So it *cannot* be opened by the "cat" command. Instead, the OS reads src/include/io, dereferences it to src/lib/io, and then passes *that* handle to "cat". Which then complains it's not a directory.
Don't use Windows. It makes things more difficult.
I build on Linux (RHEL 7.1), not on Windows. (I'm using Windows but only to synchronize with GitHub.) I did a "cat" just to show that I didn't have a link but instead a regular file (and what the file contained). This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
I build on Linux (RHEL 7.1), not on Windows.
Weird. I've never seen it create a regular file instead of a soft link. That's just bizarre.
Arg. Sorry. This is "Windows" again, I think. src/lib/io is a link in FreeRADIUS repository. But git on Windows... created a file instead. :'( If I remove the file, "make" needs the following fix to work: src/include/all.mk # ${Q}[ -e src/include/io ] || ln -s src/lib/io ${top_srcdir}/src/include ${Q}[ -e src/include/io ] || ln -s ${top_srcdir}/src/lib/io ${top_srcdir}/src/include But I know... the issue is really with Windows. I know what I have to do. Sorry about this false issue. Regards, Nicolas. This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
On Fri, 2018-02-16 at 17:03 +0000, Chaigneau, Nicolas wrote:
I have GNU Make 3.82
Still not working:
make CC jlibtool.c LN-SF src/include src/freeradius-devel LN-SF src/include/io src/freeradius-devel/io (...)
On a completely clean tree? e.g. `git clean -fdx` beforehand (this will wipe away any local changes). Most times I've seen issues like this are from building on one branch, then switching to another branch and something has been left lying around. -- Matthew
participants (3)
-
Alan DeKok -
Chaigneau, Nicolas -
Matthew Newton