[Solved] lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file
Added by kthaore over 2 years ago
I am trying to build the lighttpd-1.4.56 source on my build machine (Ubuntu i686 32 bit).
I get the following error:
...
...
gcc -g -O2 -o lemon ./lemon.c
rm -f configparser.h
../src/lemon -q ./configparser.y ./lempar.c
../src/lemon: ../src/lemon: cannot execute binary file
make2: *** [configparser.c] Error 126
...
...
I also tried building newer versions lighttpd-1.4.57 and lighttpd-1.4.59 but got the same error for the build step.
When I tried building lighttpd-1.4.55 it got build successfully.
I see that "lemon" executable is present in /src folder and it can be executed by "anyone".
Request help to get over this issue.
Replies (8)
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by gstrauss over 2 years ago
If you are doing a cross-compilation, lemon must be properly compiled with the native compiler for the platform on which you are building. This is normally handled by the build system unless you have overridden it with environment or command line variables.
While there are not detailed cross-compilation instructions here, please refer to lighttpd source code and build instructions and attempt to build natively before attempting to do a cross-compilation build.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by kthaore over 2 years ago
So, is it the case that whole package is being built to run on target platform and this also includes "lemon" executable ... but "lemon" executable must run on the build machine which is different from the target platform ?
If so, then is there a setting in Makefile which I can alter to build the "lemon" executable correctly for my build machine?
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by gstrauss over 2 years ago
please refer to lighttpd source code and build instructions and attempt to build natively before attempting to do a cross-compilation build.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by kthaore over 2 years ago
Thanks for your vital responses sir.
I manually compiled the lemon executable on my build machine and then copied it into /src folder. With this I am able to build lighttpd-1.4.56 to lighttpd-1.4.58. I tried modifying the lemon executable command in makefile.in from
lemon$(BUILD_EXEEXT): lemon.c
$(AM_V_CC)$(CC_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $(srcdir)/lemon.c
to
lemon$(BUILD_EXEEXT): lemon.c
/usr/bin/gcc --with-gnu-as $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $(srcdir)/lemon.c
but this change didn't work.
Currently our project is using lighttpd-1.4.55 but since we face the issue [[https://redmine.lighttpd.net/boards/2/topics/9273?r=9306#message-9306]] hence we must update to a lighttpd-1.4.56 or later.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by gstrauss over 2 years ago
In the meantime, you could use the two-line patch in https://redmine.lighttpd.net/boards/2/topics/9273?r=9287#message-9287 with lighttpd 1.4.55
In your current build environment, you can download the latest ax_prog_cc_for_build.m4 and try to build with lighttpd 1.4.59.
See https://redmine.lighttpd.net/boards/2/topics/9888
ax_prog_cc_for_build.m4 is updated in my dev branch and will be part of lighttpd 1.4.60 when lighttpd 1.4.60 is released.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by kthaore over 2 years ago
Thanks for your directives Sir.
We will include the 2 line patch in lighttpd-1.4.55 to fix the issue with file uploads less than 64k.
We shall then update to lighttpd-1.4.60 once available so that our existing issue of lemon executable is resolved.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by gstrauss over 2 years ago
We shall then update to lighttpd-1.4.60 once available so that our existing issue of lemon executable is resolved.
Did you test that? Or are you assuming? You should test that assumption.
If it works, then you should consider using that with lighttpd 1.4.59 until lighttpd 1.4.60 is released.
RE: lighttpd-1.4.56 build issue: ../src/lemon cannot execute binary file - Added by kthaore over 2 years ago
Re. Did you test that? Or are you assuming? You should test that assumption.
Yes sir, I will test this right away and share outcome.