From: Alan W. I. <ir...@be...> - 2002-01-29 17:57:09
|
On my RedHat 7.1 system I cannot get either the C or tk examples to build a typical error message is gcc -c -O -I/usr/include/plplot/.. -I. -I/usr/include/gtk-1.2 -I/us r/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/include - I/usr/lib/gnome-libs/include xtk01.c gcc xtk01.o \ -L/usr/lib -lplplotd -o xtk01 -litk3.1 -ltk8.3 -litcl3.1 -ltcl8.3 -L/usr/ X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath,/usr/lib /usr/lib/libtclmatrixd.so.5: undefined reference to atexit' collect2: ld returned 1 exit status make: *** [xtk01] Error 1 Interestingly, the fortran and c++ examples build and execute fine. I tried replacing gcc with g77 in the above, but it made no difference. I suspect there is some obscure library containing atexit that I am missing on the RH 7.1 system, but which library is it? Once that is identified, I can install the library and proceed. Another possibility is that libtclmatrixd is not linked properly, but again I need to know the name of the library which contains atexit. Any help in identifying the library containing atexit would be much appreciated. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ |
From: Alan W. I. <ir...@be...> - 2002-01-29 18:31:52
|
I am now discovering more than I want to about atexit. I was wrong below, atexit is not obscure at all, but that leads to new questions. It appears in tek.c (and commented out in gnome.c). Here are the tek.c lines found by grep. tek.c:static void tty_atexit (void); tek.c:static void tty_atexit (void) {} tek.c: if (atexit(tty_atexit)) tek.c: fprintf(stderr, "Unable to set up atexit handler.\n"); tek.c:tty_atexit(void) /* exit handler */ atexit (which I am sure you knew, but I didn't) is a standard K&R function (see p. 253 of the K&R book) defined like int atexit(void (*fcn)(void)) from p. 119 the & operator is not needed on the function name in argument lists so if (atexit(tty_atexit)) above seems fine to me. Also, a simple test programme consisting of #include <stdio.h> main() { printf("Hello, World!\n"); atexit(); } compiles and links fine with the command gcc test.c on both my Debian ***and RH 7.1 systems***. (Of course it segfaults upon execution after printing out the Hello World! message since the argument is incorrect on atexit.) So as expected from the K&R book, atexit is just part of the standard library on both systems, and nothing special has to be done to link against it. So I am completely stumped why I am getting a linking error concerning atexit when I attempt to link either our C or tk examples, but not when I link our C++ or fortran examples. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Tue, 29 Jan 2002, Alan W. Irwin wrote: > On my RedHat 7.1 system I cannot get either the C or tk examples to build > > a typical error message is > > gcc -c -O -I/usr/include/plplot/.. -I. -I/usr/include/gtk-1.2 > -I/us > r/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include > -I/usr/include - > I/usr/lib/gnome-libs/include xtk01.c > gcc xtk01.o \ > -L/usr/lib -lplplotd -o xtk01 -litk3.1 -ltk8.3 -litcl3.1 -ltcl8.3 > -L/usr/ > X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath,/usr/lib > /usr/lib/libtclmatrixd.so.5: undefined reference to atexit' > collect2: ld returned 1 exit status > make: *** [xtk01] Error 1 > > Interestingly, the fortran and c++ examples build and execute fine. > > I tried replacing gcc with g77 in the above, but it made no difference. > > I suspect there is some obscure library containing atexit that I am missing > on the RH 7.1 system, but which library is it? Once that is identified, I > can install the library and proceed. Another possibility is that > libtclmatrixd is not linked properly, but again I need to know the > name of the library which contains atexit. > > Any help in identifying the library containing atexit would be much > appreciated. > > Alan > > > > email: ir...@be... > phone: 250-727-2902 FAX: 250-721-7715 > snail-mail: > Dr. Alan W. Irwin > Department of Physics and Astronomy, > University of Victoria, P.O. Box 3055, > Victoria, British Columbia, Canada, V8W 3P6 > __________________________ > > Linux-powered astrophysics > __________________________ > > > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |
From: Alan W. I. <ir...@be...> - 2002-01-29 19:24:25
|
More information (hot off the presses). I hope you read all your mail before responding to the previous messages in this thread. If I add -ltclmatrixd to the link lines in the examples Makefile, all C and Tk build and run without problems. So problem solved, and thanks for listening as I worked through this. Have you cross-platform guys tried all the examples? I wonder how many other platforms demand the -ltclmatrixd link line? I wonder how Debian woody works fine without requiring it? Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Tue, 29 Jan 2002, Alan W. Irwin wrote: > I am now discovering more than I want to about atexit. I was wrong below, > atexit is not obscure at all, but that leads to new questions. > > It appears in tek.c > (and commented out in gnome.c). Here are the tek.c lines found by grep. > > tek.c:static void tty_atexit (void); > tek.c:static void tty_atexit (void) {} > tek.c: if (atexit(tty_atexit)) > tek.c: fprintf(stderr, "Unable to set up atexit handler.\n"); > tek.c:tty_atexit(void) /* exit handler */ > > atexit (which I am sure you knew, but I didn't) is a standard K&R function > (see p. 253 of the K&R book) defined like > > int atexit(void (*fcn)(void)) > > from p. 119 the & operator is not needed on the function name in argument > lists so > if (atexit(tty_atexit)) above seems fine to me. > > Also, a simple test programme consisting of > > #include <stdio.h> > > main() > { > > printf("Hello, World!\n"); > atexit(); > } > > compiles and links fine with the command > > gcc test.c > > on both my Debian ***and RH 7.1 systems***. (Of course it segfaults upon > execution after printing out the Hello World! message since the argument is > incorrect on atexit.) So as expected from the K&R book, atexit is just part > of the standard library on both systems, and nothing special has to be done > to link against it. > > So I am completely stumped why I am getting a linking error concerning > atexit when I attempt to link either our C or tk examples, but not > when I link our C++ or fortran examples. > > Alan > > > email: ir...@be... > phone: 250-727-2902 FAX: 250-721-7715 > snail-mail: > Dr. Alan W. Irwin > Department of Physics and Astronomy, > University of Victoria, P.O. Box 3055, > Victoria, British Columbia, Canada, V8W 3P6 > __________________________ > > Linux-powered astrophysics > __________________________ > > On Tue, 29 Jan 2002, Alan W. Irwin wrote: > > > On my RedHat 7.1 system I cannot get either the C or tk examples to build > > > > a typical error message is > > > > gcc -c -O -I/usr/include/plplot/.. -I. -I/usr/include/gtk-1.2 > > -I/us > > r/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include > > -I/usr/include - > > I/usr/lib/gnome-libs/include xtk01.c > > gcc xtk01.o \ > > -L/usr/lib -lplplotd -o xtk01 -litk3.1 -ltk8.3 -litcl3.1 -ltcl8.3 > > -L/usr/ > > X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath,/usr/lib > > /usr/lib/libtclmatrixd.so.5: undefined reference to atexit' > > collect2: ld returned 1 exit status > > make: *** [xtk01] Error 1 > > > > Interestingly, the fortran and c++ examples build and execute fine. > > > > I tried replacing gcc with g77 in the above, but it made no difference. > > > > I suspect there is some obscure library containing atexit that I am missing > > on the RH 7.1 system, but which library is it? Once that is identified, I > > can install the library and proceed. Another possibility is that > > libtclmatrixd is not linked properly, but again I need to know the > > name of the library which contains atexit. > > > > Any help in identifying the library containing atexit would be much > > appreciated. > > > > Alan > > > > > > > > email: ir...@be... > > phone: 250-727-2902 FAX: 250-721-7715 > > snail-mail: > > Dr. Alan W. Irwin > > Department of Physics and Astronomy, > > University of Victoria, P.O. Box 3055, > > Victoria, British Columbia, Canada, V8W 3P6 > > __________________________ > > > > Linux-powered astrophysics > > __________________________ > > > > > > _______________________________________________ > > Plplot-devel mailing list > > Plp...@li... > > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > > > > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |
From: Joao C. <jc...@fe...> - 2002-01-29 21:00:59
|
On Tuesday 29 January 2002 7:24 pm, Alan W. Irwin wrote: > More information (hot off the presses). I hope you read all your mail > before responding to the previous messages in this thread. > > > Have you cross-platform guys tried all the examples? I wonder how many > other platforms demand the -ltclmatrixd link line? I wonder how Debian > woody works fine without requiring it? atexit() is in libc: [jcard@feup] nm -p /lib/libc.so.6 | fgrep atexit 001161ac ? __elf_set___libc_atexit_element__cleanup__ 00118aa0 b added_atexit_handler.186 001161ac a __start___libc_atexit 001161b0 a __stop___libc_atexit 0002f9a0 T __cxa_atexit 0002f960 T atexit ^^^ here it is defined as externaly visible. > If I add -ltclmatrixd to the link lines in the examples Makefile, > all C and Tk build and run without problems. So problem solved, and > thanks for listening as I worked through this. I don't understand, as I get -ltclmatrixd in the link automatically: [jcard@feup] make tkdemos gcc -c -O -I. -I/usr/lib/java//include xtk01.c gcc xtk01.o \ -L. -lplplotd -ltclmatrixd -o xtk01 -litk3.2 -ltk8.3 -litcl3.2=20 -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath=20 -Wl,/home/jcard/plplot-devel/tmp even if I remove the tcllibrary, it links OK; [jcard@feup] gcc xtk01.o -L. -lplplotd -o xtk01 -litk3.2 -ltk8.3 -litc= l3.2=20 -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath=20 -Wl,/home/jcard/plplot-devel/tmp But, with a standard make, "xtk01"f ails: [jcard@feup] ./xtk01=20 % myplot Segmentation fault [jcard@feup] ./xtk01=20 % myplot 1 *** PLPLOT ERROR *** plcol0: Please call plinit first, aborting operation =2E.. and so on. The README.tkdemos does not provides accurate instrutions on runing this=20 component of the demos, so I don't know if this is the correct way--I had= to=20 read the xtk01.c code. I have further tested: cdemos-OK fdemos-OK cxxdemos-OK jdemos-OK pythondemos-OK tcldemos-OK octave demos-OK tkdemos-half OK, the "start plserver, source tkdemos etc" worked, the xtk= ??=20 demos didn't. Joao |
From: Alan W. I. <ir...@be...> - 2002-01-29 21:52:22
|
On Tue, 29 Jan 2002, Joao Cardoso wrote: > On Tuesday 29 January 2002 7:24 pm, Alan W. Irwin wrote: > > More information (hot off the presses). I hope you read all your mail > > before responding to the previous messages in this thread. > > > > > > Have you cross-platform guys tried all the examples? I wonder how many > > other platforms demand the -ltclmatrixd link line? I wonder how Debian > > woody works fine without requiring it? > > [...]If I add -ltclmatrixd to the link lines in the examples Makefile, > > all C and Tk build and run without problems. So problem solved, and > > thanks for listening as I worked through this. > > I don't understand, as I get -ltclmatrixd in the link automatically: > > [jcard@feup] make tkdemos > gcc -c -O -I. -I/usr/lib/java//include xtk01.c > gcc xtk01.o \ > -L. -lplplotd -ltclmatrixd -o xtk01 -litk3.2 -ltk8.3 -litcl3.2 > -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath > -Wl,/home/jcard/plplot-devel/tmp I wasn't clear. Everything is fine in the tmp location. It is the installed location ($prefix/lib/plplot5.1.0/examples/c, for example) where the make cdemos fails on RH 7.1 (but not on Debian/woody). The tmp Makefile has the -ltclmatrixd, but the installed examples one does not, and I am about to fix that since it does make a difference for RH 7.1. > > even if I remove the tcllibrary, it links OK; > [jcard@feup] gcc xtk01.o -L. -lplplotd -o xtk01 -litk3.2 -ltk8.3 -litcl3.2 > -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl -lm -lg2c -Wl,-rpath > -Wl,/home/jcard/plplot-devel/tmp Yep, that works on Debian/woody as well, but not RH 7.1. > > But, with a standard make, "xtk01"f ails: > > [jcard@feup] ./xtk01 > % myplot > Segmentation fault > > [jcard@feup] ./xtk01 > % myplot 1 > > *** PLPLOT ERROR *** > plcol0: Please call plinit first, aborting operation > ... > and so on. > > The README.tkdemos does not provides accurate instrutions on runing this > component of the demos, so I don't know if this is the correct way--I had to > read the xtk01.c code. Actually, the test_tk.sh script I shared with the list before is an excellent guide, but it needs a slight generalization so it can work from both the tmp and installed locations. Here is the modified script (it is set up for the installed examples location, but set the first 4 export lines to . to work from the tmp location.) *********************** #!/bin/sh #test suite of all interactive tk stuff that cannot be done by file. #tk driver (x14c), tcldemos, tkdemos. export cdir=c export tcldir=tcl export tkdir=tk export plplotbindir=/usr/local/plplot/bin $cdir/x14c $cdir/x17c -dev tk $tkdir/xtk01 -f $tkdir/tk01 $tkdir/xtk02 -f $tkdir/tk02 $plplotbindir/plserver -f $tkdir/tk03 $tkdir/xtk04 -f $tkdir/tk04 cd $tcldir $plplotbindir/plserver <<EOF plstdwin . plxframe .plw pack append . .plw {left expand fill} source plgrid.tcl proc 1 {} "plgrid .plw.plwin" 1 exit EOF cd ../$tkdir pwd $plplotbindir/plserver <<EOF source tkdemos.tcl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 exit EOF *********************** Also, you must execute the following before this script if you want to exercise the installed examples. pushd /usr/local/plplot/lib/plplot5.1.0/examples/ cd c; make cdemos >&! make_cdemos.out; cd .. cd f77 ; make fdemos > & ! make_fdemos.out ; cd .. cd c++ ; make cxxdemos > & ! make_cxxdemos.out ; cd .. cd tk ; make tkdemos > & ! make_tkdemos.out ; cd .. Let me know whether the above works (once I make the commit of my configuration change). > > I have further tested: > > cdemos-OK > fdemos-OK > cxxdemos-OK > jdemos-OK > pythondemos-OK > tcldemos-OK > octave demos-OK > tkdemos-half OK, the "start plserver, source tkdemos etc" worked, the xtk?? > demos didn't. Thanks, Joao. Please try this from the installed examples location as well, once I get the configuration change out so the demo Makefile there is correct for RH 7.1. Alan |
From: Alan W. I. <ir...@be...> - 2002-01-29 21:55:24
|
P.S. and of course to exercise the non-interactive installed examples, use plplot-test.sh from $prefix/lib/plplot5.1.0/examples The tk testing script I included in my last e-mail also is executed from the same location. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ |