prelink configuration error :: fatal error: ac_nonexistent.h: No such file or direct
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I found a fatal error in config.log as :
configure:3388: gcc -E -I/home/akhilesh/jubi/prelink/source/elfutils-0.153/libelf conftest.c
configure:3392:28: fatal error: ac_nonexistent.h: No such file or directory
configure:3394: $? = 1
configure: failed program was:
| #line 3379 "configure"
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "prelink"
| #define VERSION "0.0"
| #ifdef __cplusplus
| #include <stdlib.h>
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
And, I tried locating : ac_nonexistent.h header file in the system and I could not find it anywhere. Can anyone please point out what I am missing? Is there any flag that I need to pass while configuring prelink?
Looking forward to your help.
Last edited by jubitaneja; 04-12-2012 at 05:49 AM.
Thanks for sharing this URL. But, still I could not resolve the problem. Infact, its not clear to me till now that how can I proceed ahead with it so that it may not give fatal error.
The other query is: I observed that gcc-3.x when compiles conftest.c file, though it says the same :"ac_nonexistent.h: No such file or directory", but it does not throw fatal error and proceeds ahead!!! Is it correct to think that thers is some code handler in gcc-4.x versions that give fatal error and gcc-3.x don't? I am not at all clear about it, but I observed this and cross checked from the old config.log file...
the command ./configure will run tests to check the capabilities of the actual system. This is used to create a working build environment. These tests usually prepare small test environments and execute special test cases. The configure script checks the result and depending on the result will continue or fail, and also will generate makefiles and other files. conftest.c is a generated test c source file to drive a test case. The link I gave you tried to explain the test case related to this ac_nonexistent.h: how your compiler detects and rejects broken source code that refers to a non-existent header. This is a test case among the others and it must fail. The script configure will catch that error and that's why it will proceed ahead (because this is the expected behavior).
I was actually entangled in loop that this configuration error is causing the build to fail. But, your explanation confirmed me. I found that the build process further failed because it could not link -lselinux flag. For this, it might be looking for lselinux.a in the system. This all happens because by default prelink is statically build. To overcome this issue, if you :
-remove "-all-static" flags from Makefile in prelink source;
-add another flag while configuring i.e. "--enable-static=no";
it will be built successfully.
This might help others who are building native prelink. :-)
Last edited by jubitaneja; 04-13-2012 at 09:56 AM.