libpng icon indicating copy to clipboard operation
libpng copied to clipboard

Generated libtool is bugged

Open geranim0 opened this issue 8 years ago • 9 comments

Had to manually change the libtool directory to /usr/bin/libtool for libpng to compile correctly.

Ubuntu 16.04, mate DE

The error it gives is

./libtool: eval: line 7967: unexpected EOF while looking for matching `'' ./libtool: eval: line 7968: syntax error: unexpected end of file Makefile:891: recipe for target 'libpng16.la' failed make[1]: *** [libpng16.la] Error 2

geranim0 avatar Sep 19 '16 02:09 geranim0

Were you starting with a libpng tarball or with a Git clone?

glennrp avatar Sep 19 '16 18:09 glennrp

Would you capture the output of './libtool --config' and '/usr/bin/libtool --config' and attach them here?

glennrp avatar Sep 19 '16 19:09 glennrp

I started with the Git clone.

When running ./libtool --config, it breaks my console. Here is a sample of the output:

S≤└␉⎺┌⎽ ├␤▒├ └┤⎽├ ▒┌┬▒≤⎽ ␉␊ ␊│⎻⎺⎼├␊␍.

␋┼␌┌┤␍␊_␊│⎻⎽≤└⎽="""

I joined the '/usr/bin/libtool --config' ouput output.zip

geranim0 avatar Sep 19 '16 22:09 geranim0

So your ./libtool got truncated somehow. On my Ubuntu 86_64 platform, around line 7968 is

                else
                    shlib_search_path=
                fi
                eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
  7967->   eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
  7968->
                # Definition is injected by LT_CONFIG during libtool generation.
                func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"

                func_dirname "$output" "/" ""
              _objdir=$func_dirname_result$objdir

What does "tail -10 ./libtool" show you?

glennrp avatar Sep 19 '16 23:09 glennrp

tail.zip

geranim0 avatar Sep 20 '16 00:09 geranim0

I don't know if Glenn tracked this down, it seems pretty weird because I can't see why he concluded that the generated libtool was truncated.

Anyway, it's necessary to regenerate the autostuff after a git pull. If you switch on maintainer mode this happens automatically, otherwise autogen.sh warns you that you need to do it. If you know about autoreconf (i.e. don't run ./autogen.sh in the first place) you are assumed to know all about it ;-)

Normally this is just a matter of running autoreconf. It is good practice to do this after every pull (or to pass --enable-maintainer-mode to configure in the first place).

In this case I suggest running:

./autogen.sh --maintainer --clean autoreconf -f -i ./configure --enable-maintainer-mode

(Notice that the latter is not done for releases; releases include a consistent set of autotools including pre-generated libtool and configure and it is a distinctly bad idea to change them.)

jbowler avatar Dec 08 '16 02:12 jbowler

Is there any solution for this issue?

I am using Ubuntu 17.10 to compile libpng-1.6.21 and it gives error:

./libtool: eval: line 7966: unexpected EOF while looking for matching `"' ./libtool: eval: line 7967: syntax error: unexpected end of file Makefile:857: recipe for target 'libpng16.la' failed make[1]: *** [libpng16.la] Error 2

The line 7966 in libtool is eval sys_lib_dlsearch_path="$sys_lib_dlsearch_path_spec"

zhyw86 avatar Feb 25 '18 04:02 zhyw86

Same as before: i.e. read my message, the one you responded to. It is unambiguous, direct and forthright.

In any case, the current Gentoo development version is 1.6.34 and picking random versions out of the past is Putinesk to say the least.

jbowler avatar Feb 25 '18 05:02 jbowler

Close: @ctruta, just delete the derived files. The distributions really don't care (they use their own autoconf) and if the build of the tarball doesn't recreated them there is something wrong with that build (there may be, that's a more important issue.)

jbowler avatar Dec 27 '23 02:12 jbowler