Building Eterm - please more help

Harold L Hunt II huntharo@msu.edu
Wed Oct 30 19:17:00 GMT 2002


Robert,

Well, eterm's libast is contains the file that is being put in 
/usr/local/include/libast.h... and that file has had the following code 
as far back as the CVS history goes:

#*if* *defined*(PATH_MAX) && (PATH_MAX < 255)
#  *undef* PATH_MAX
#*endif*
#*ifndef* PATH_MAX
#  *define* PATH_MAX 255
#*endif


Now, I cannot say that the (PATH_MAX < 255) conditional is actually going to mean
anything to the C preprocessor that we use, and I will bet you money that this
just breaks differently on other platforms such that PATH_MAX is not being
redefined (it is probably never defined on those platforms).

In any case, I am going to have to tell you the secret that makes all of us
``hackers'' real men.  Okay, the secret is, when something in a header conflicts
with a system header, you do three things:

1) #if 0 the section in the offending header that redefines what the system
headers defines.

2) Do a test compile and see if the point of error moves on to some other point.

3) If you succeed at #2, then go back and either fix the broken #define code
or add a platform-specific kludge that prevents that section from doing
harm on your platform.

That is how we get things compiled, and some of us go back and clean the mess up
later so that the changes can actuall be committed so CVS.  :)

There, you are now much wiser, and I think you know that I am trying to tell you
to do next, right?

Harold

P.S.  Okay, just in case, goto /usr/local/include/libast.h and #if 0 the section
that I quoted above.  Rebuild.  If the build still fails, go look again at
/usr/local/include/libast.h and make sure that it has not been replaced with
an original version during the build process; in which case you would need
to edit the version of libast.h in your source tree (which you will eventually have
to do anyway).

*


bob.cavanaugh@flextronics.com wrote:

>Hello,
>I am still trying to build Eterm for Cygwin. I have now successfully got cygipc
>running (thanks J. L!) and have built  Imlib2 (Thanks Harold!). The Eterm source
>appears to compile completely, but is failing in the linker.  Here is the
>messages from the make process. I included the entire thing in case I missed
>something. The main problem I am having is the undefined references. Any help
>will be gratefully appreciated.
>
>make  all-recursive
>make[1]: Entering directory `/usr/local/Eterm-0.9.1'
>Making all in src
>make[2]: Entering directory `/usr/local/Eterm-0.9.1/src'
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c actions.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>actions.c -o actions.o
>In file included from actions.c:30:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > actions.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c buttons.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>buttons.c -o buttons.o
>In file included from command.h:23,
>                 from buttons.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > buttons.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c command.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>command.c -o command.o
>In file included from command.c:59:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > command.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c draw.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>draw.c -o draw.o
>echo timestamp > draw.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c e.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>e.c -o e.o
>In file included from e.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > e.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c events.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>events.c -o events.o
>In file included from events.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > events.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c font.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>font.c -o font.o
>In file included from font.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > font.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c grkelot.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>grkelot.c -o grkelot.o
>echo timestamp > grkelot.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c menus.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>menus.c -o menus.o
>In file included from command.h:23,
>                 from menus.c:31:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > menus.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c misc.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>misc.c -o misc.o
>In file included from command.h:23,
>                 from misc.c:39:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > misc.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c netdisp.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>netdisp.c -o netdisp.o
>echo timestamp > netdisp.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c options.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>options.c -o options.o
>In file included from options.c:38:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > options.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c pixmap.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>pixmap.c -o pixmap.o
>In file included from command.h:23,
>                 from pixmap.c:41:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > pixmap.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c screen.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>screen.c -o screen.o
>In file included from command.h:23,
>                 from screen.c:35:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > screen.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c script.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>script.c -o script.o
>In file included from script.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > script.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c scrollbar.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>scrollbar.c -o scrollbar.o
>In file included from command.h:23,
>                 from scrollbar.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > scrollbar.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c startup.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>startup.c -o startup.o
>In file included from command.h:23,
>                 from startup.c:46:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > startup.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c system.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>system.c -o system.o
>In file included from command.h:23,
>                 from system.c:39:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > system.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c term.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>term.c -o term.o
>In file included from term.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > term.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c timer.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>timer.c -o timer.o
>In file included from timer.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > timer.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c utmp.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>utmp.c -o utmp.o
>echo timestamp > utmp.lo
>/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..
>-I/usr/include -I/usr/X11R6/include   -g -O2 -c windows.c
>gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/X11R6/include -g -O2 -c
>windows.c -o windows.o
>In file included from windows.c:32:
>/usr/include/limits.h:128: warning: `PATH_MAX' redefined
>/usr/local/include/libast.h:357: warning: this is the location of the previous
>definition
>echo timestamp > windows.lo
>/bin/sh ../libtool --mode=link gcc  -g -O2 -L/usr/lib -L/usr/X11R6/lib  -o
>libEterm.la -rpath /usr/lib -release 0.9.1 actions.lo buttons.lo command.lo
>draw.lo e.lo events.lo font.lo grkelot.lo menus.lo misc.lo netdisp.lo options.lo
>pixmap.lo screen.lo script.lo scrollbar.lo startup.lo system.lo term.lo timer.lo
>utmp.lo windows.lo  -last -lImlib2 -lttf   -lSM -lICE -lXext -lX11 -lm   -lipc
>libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin shared
>libraries
>mkdir .libs
>ar cru .libs/libEterm.a  actions.o buttons.o command.o draw.o e.o events.o
>font.o grkelot.o menus.o misc.o netdisp.o options.o pixmap.o screen.o script.o
>scrollbar.o startup.o system.o term.o timer.o utmp.o windows.o
>ranlib .libs/libEterm.a
>creating libEterm.la
>(cd .libs && rm -f libEterm.la && ln -s ../libEterm.la libEterm.la)
>gcc -DHAVE_CONFIG_H -I. -I. -I..   -I/usr/include -I/usr/X11R6/include   -g -O2
>-c main.c
>/bin/sh ../libtool --mode=link gcc  -g -O2 -L/usr/lib -L/usr/X11R6/lib  -o Eterm
>-rpath /usr/lib:/usr/lib/Eterm main.o libEterm.la  -last -lImlib2 -lttf   -lSM
>-lICE -lXext -lX11 -lm   -lipc
>gcc -g -O2 -L/usr/lib -L/usr/X11R6/lib -o Eterm main.o .libs/libEterm.a -last
>-lImlib2 -lttf -lSM -lICE -lXext -lX11 -lipc -last -lImlib2 -lttf -lSM -lICE
>-lXext -lX11 -lipc -Wl,--rpath -Wl,/usr/lib:/usr/lib/Eterm -Wl,--rpath
>-Wl,/usr/lib:/usr/lib/Eterm
>.libs/libEterm.a(screen.o): In function `selection_copy_string':
>/usr/local/Eterm-0.9.1/src/screen.c:2455: undefined reference to `_XA_CLIPBOARD'
>/usr/local/Eterm-0.9.1/src/screen.c:2455: undefined reference to `XmuInternAtom'
>.libs/libEterm.a(screen.o): In function `selection_paste':
>/usr/local/Eterm-0.9.1/src/screen.c:2482: undefined reference to `_XA_CLIPBOARD'
>/usr/local/Eterm-0.9.1/src/screen.c:2482: undefined reference to `XmuInternAtom'
>collect2: ld returned 1 exit status
>make[2]: *** [Eterm] Error 1
>make[2]: Leaving directory `/usr/local/Eterm-0.9.1/src'
>make[1]: *** [all-recursive] Error 1
>make[1]: Leaving directory `/usr/local/Eterm-0.9.1'
>make: *** [all-recursive-am] Error 2
>
>Thanks,
>
>Robert Cavanaugh
>Senior Firmware Engineer
>Flextronics Design
>Mountain States Engineering
>Salt Lake City, Utah
>(801)-685-9330
>
>
>  
>



More information about the Cygwin-xfree mailing list