|
From: Tatsuro M. <tma...@ya...> - 2021-12-15 08:44:05
|
> ----- Original Message ----- > Hello > > I tried to use expint on the development brach on Cygwin. > > amos library, > http://www.netlib.org/amos/ > > i1mach.f, r1mach.f, d1mach (replacement of the above) > http://www.netlib.org/blas/i1mach.f > http://www.netlib.org/blas/r1mach.f > http://www.netlib.org/blas/d1mach.f > > cexint, zexint > http://www.netlib.org/toms-2014-06-10/683 > > I have checked cexint, zexint by cqccex.f and zqccex.f. > QUICK CHECKS FOR CEXINT ARE OK. > QUICK CHECKS FOR ZEXINT ARE OK. > > all.dem runs without problem > > However, load 'expint.dem' seems to be invaild. > See the below screenshot files > http://tmacchant33.starfree.jp/Files/expint1.png > http://tmacchant33.starfree.jp/Files/expint2.png > > Any suggestions? > > Refernce > confiure > LDFLAGS='-L/usr/local/lib -lamos' \ > ./configure --prefix=/cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/usr/local \ > --with-qt=no \ > --disable-dependency-tracking \ > --enable-plugins \ > --with-latex \ > --with-kpsexpand \ > --with-x \ > --with-readline=gnu \ > --with-gd \ > --with-lua \ > --with-bitmap-terminals \ > --enable-history-file \ > --enable-stats \ > --without-ggi \ > --without-gpic \ > --without-mif > > config.log > http://tmacchant33.starfree.jp/Files/config.log > > Tatsuro Sorry I did see config.log in details. gnuplot will be compiled with the following configurable features: Mouse support in interactive terminals: yes Typing <space> in plot window raises console: yes Readline library: GNU readline library with -lncurses Command-line history file: yes Check current directory for .gnuplot file: no (use --with-cwdrc to enable) Sort help/subtopic tables by column: no (use --without-row-help to enable) cerf() and other special functions from libcerf: yes Airy and Bessel functions from libopenspecfun or libamos: yes Complex exponential integral cexint from libamos: yes plugin support for loading external functions: yes Statistical summary of data ("stats" command): yes But config.log says configure:8714: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 configure:8714: $? = 0 configure:8734: result: -lcerf configure:8766: checking for amos libraries using LDFLAGS: -L/usr/local/lib -lamos -L/lib -lcerf configure:8769: checking for library containing zairy_ configure:8799: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccYZXooH.o: in function `main': /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_' collect2: error: ld returned 1 exit status configure:8799: $? = 1 def file of libamos has zairy_ symbol Hmmmm? Tatsuro |
|
From: Tatsuro M. <tma...@ya...> - 2021-12-15 20:29:34
|
Ethan Thank you for your reply > It could be that the zairy function you compiled from source lacks the > trailing underscore because the gfortran compiler defaulted to the wrong > underscoring convention. For this problem I will struggle further. With help by Bastian, I could build gnuplot with expint on native windows. https://sourceforge.net/p/gnuplot/bugs/2475/ Comparing the results on cygwin and native windows , build gnuplot with exint on cygwin was successful. Wrong results in expint.dem come from my build ACM routine are not succcessful. > So do people think it would be good to add the Amos source > to the gnuplot repository and distribution package? I took a little long time to find imformation about amos and acm and information for *1mach. Therefore it will be grateful if you add Amos source in gnuplot repository. However, Bastian tell me that ACM is allowed use for non-commercial. > Separate from discussion of including the Amos source in the > gnuplot repository, I can send you Makefiles and C versions of > the *1mach files if you like. Just let me know. It would be grateful for me if send Makefiles and C version of *1mach files. Tatsuro > ----- Original Message ----- > On Wednesday, 15 December 2021 00:43:54 PST Tatsuro MATSUOKA wrote: > > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_' > > collect2: error: ld returned 1 exit status > > configure:8799: $? = 1 > > > > def file of libamos has zairy_ symbol > > Some fortran compilers historically used a convention that subroutine > names always ended in an underscore. > > The gcc compiler package supports either the "always use underscore" > or "never use underscore" convention, but you have to use the same > convention when compiling all the source files that will be linked > together. That includes libraries. > > For gfortran the two options are > -funderscoring > -fno-underscoring > > This is noted in the gnuplot source for the c/fortran interface routines > in gnuplot's .../src/amos_airy.c > > * The zairy_() routine (note Fortran naming and parameter passing conventions) > * is found, for example, in libopenspecfun. We use it to calculate Ai(z). > * Similarly zbiry_() is used to calcualte Bi(z). > > It could be that the zairy function you compiled from source lacks the > trailing underscore because the gfortran compiler defaulted to the wrong > underscoring convention. > > I would worry a bit about this part also: > > I tried to use expint on the development brach on Cygwin. > > > > amos library, > > http://www.netlib.org/amos/ > > > > i1mach.f, r1mach.f, d1mach (replacement of the above) > > http://www.netlib.org/blas/i1mach.f > > http://www.netlib.org/blas/r1mach.f > > http://www.netlib.org/blas/d1mach.f > > These source files were incorrect for use on my linux machines. > I replaced them with local definitions in C in order to build a > working copy of libamos. I do not know whether that is or is > not a problem for your Cygwin environment. > > I had considered to add the relevant libamos source files > in a new subdirectory of the gnuplot source, along with a > autoconf/Makefile template so that the library can be built > automatically via ./configure; make gnuplot > > I decided not to add it when I found that at least some > linux distributions are already providing either a pre-built > version of libamos or a version of libopenspecfun, which > provides all of the needed functions except cexint. > However your story here shows that it remains a bit tricky > to find and build all the relevant source if you do not have > one of the pre-built libraries. > > So do people think it would be good to add the Amos source > to the gnuplot repository and distribution package? > > I have source files from the original Sandia Laboratories > work by Donald Amos. Some, but not all, of these were > later archived in netlib. Note that the version of cexint.f > that I have did _not_ come from the TOMS/ACM publication > collection. > > Separate from discussion of including the Amos source in the > gnuplot repository, I can send you Makefiles and C versions of > the *1mach files if you like. Just let me know. > > Ethan > > > > > ----- Original Message ----- > > > > > Hello > > > > > > I tried to use expint on the development brach on Cygwin. > > > > > > amos library, > > > http://www.netlib.org/amos/ > > > > > > i1mach.f, r1mach.f, d1mach (replacement of the above) > > > http://www.netlib.org/blas/i1mach.f > > > http://www.netlib.org/blas/r1mach.f > > > http://www.netlib.org/blas/d1mach.f > > > > > > cexint, zexint > > > http://www.netlib.org/toms-2014-06-10/683 > > > > > > I have checked cexint, zexint by cqccex.f and zqccex.f. > > > QUICK CHECKS FOR CEXINT ARE OK. > > > QUICK CHECKS FOR ZEXINT ARE OK. > > > > > > all.dem runs without problem > > > > > > However, load 'expint.dem' seems to be invaild. > > > See the below screenshot files > > > http://tmacchant33.starfree.jp/Files/expint1.png > > > http://tmacchant33.starfree.jp/Files/expint2.png > > > > > > Any suggestions? > > > > > > Refernce > > > confiure > > > LDFLAGS='-L/usr/local/lib -lamos' \ > > > ./configure --prefix=/cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/usr/local \ > > > --with-qt=no \ > > > --disable-dependency-tracking \ > > > --enable-plugins \ > > > --with-latex \ > > > --with-kpsexpand \ > > > --with-x \ > > > --with-readline=gnu \ > > > --with-gd \ > > > --with-lua \ > > > --with-bitmap-terminals \ > > > --enable-history-file \ > > > --enable-stats \ > > > --without-ggi \ > > > --without-gpic \ > > > --without-mif > > > > > > config.log > > > http://tmacchant33.starfree.jp/Files/config.log > > > > > > Tatsuro > > > > Sorry I did see config.log in details. > > > > gnuplot will be compiled with the following configurable features: > > > > Mouse support in interactive terminals: yes > > Typing <space> in plot window raises console: yes > > Readline library: GNU readline library with -lncurses > > Command-line history file: yes > > Check current directory for .gnuplot file: no (use --with-cwdrc to enable) > > Sort help/subtopic tables by column: no (use --without-row-help to enable) > > cerf() and other special functions from libcerf: yes > > Airy and Bessel functions from libopenspecfun or libamos: yes > > Complex exponential integral cexint from libamos: yes > > plugin support for loading external functions: yes > > Statistical summary of data ("stats" command): yes > > > > But config.log says > > > > configure:8714: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 > > configure:8714: $? = 0 > > configure:8734: result: -lcerf > > configure:8766: checking for amos libraries using LDFLAGS: -L/usr/local/lib -lamos -L/lib -lcerf > > configure:8769: checking for library containing zairy_ > > configure:8799: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 > > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccYZXooH.o: in function `main': > > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_' > > collect2: error: ld returned 1 exit status > > configure:8799: $? = 1 > > > > def file of libamos has zairy_ symbol > > > > Hmmmm? > > > > Tatsuro > > > > > > > > _______________________________________________ > > gnuplot-beta mailing list > > gnu...@li... > > Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-beta > > > > > -- > Ethan A Merritt > Biomolecular Structure Center, K-428 Health Sciences Bldg > MS 357742, University of Washington, Seattle 98195-7742 > > > |
|
From: Ethan A M. <me...@uw...> - 2021-12-15 18:28:36
|
On Wednesday, 15 December 2021 00:43:54 PST Tatsuro MATSUOKA wrote: > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_' > collect2: error: ld returned 1 exit status > configure:8799: $? = 1 > > def file of libamos has zairy_ symbol Some fortran compilers historically used a convention that subroutine names always ended in an underscore. The gcc compiler package supports either the "always use underscore" or "never use underscore" convention, but you have to use the same convention when compiling all the source files that will be linked together. That includes libraries. For gfortran the two options are -funderscoring -fno-underscoring This is noted in the gnuplot source for the c/fortran interface routines in gnuplot's .../src/amos_airy.c * The zairy_() routine (note Fortran naming and parameter passing conventions) * is found, for example, in libopenspecfun. We use it to calculate Ai(z). * Similarly zbiry_() is used to calcualte Bi(z). It could be that the zairy function you compiled from source lacks the trailing underscore because the gfortran compiler defaulted to the wrong underscoring convention. I would worry a bit about this part also: > I tried to use expint on the development brach on Cygwin. > > amos library, > http://www.netlib.org/amos/ > > i1mach.f, r1mach.f, d1mach (replacement of the above) > http://www.netlib.org/blas/i1mach.f > http://www.netlib.org/blas/r1mach.f > http://www.netlib.org/blas/d1mach.f These source files were incorrect for use on my linux machines. I replaced them with local definitions in C in order to build a working copy of libamos. I do not know whether that is or is not a problem for your Cygwin environment. I had considered to add the relevant libamos source files in a new subdirectory of the gnuplot source, along with a autoconf/Makefile template so that the library can be built automatically via ./configure; make gnuplot I decided not to add it when I found that at least some linux distributions are already providing either a pre-built version of libamos or a version of libopenspecfun, which provides all of the needed functions except cexint. However your story here shows that it remains a bit tricky to find and build all the relevant source if you do not have one of the pre-built libraries. So do people think it would be good to add the Amos source to the gnuplot repository and distribution package? I have source files from the original Sandia Laboratories work by Donald Amos. Some, but not all, of these were later archived in netlib. Note that the version of cexint.f that I have did _not_ come from the TOMS/ACM publication collection. Separate from discussion of including the Amos source in the gnuplot repository, I can send you Makefiles and C versions of the *1mach files if you like. Just let me know. Ethan > > ----- Original Message ----- > > > Hello > > > > I tried to use expint on the development brach on Cygwin. > > > > amos library, > > http://www.netlib.org/amos/ > > > > i1mach.f, r1mach.f, d1mach (replacement of the above) > > http://www.netlib.org/blas/i1mach.f > > http://www.netlib.org/blas/r1mach.f > > http://www.netlib.org/blas/d1mach.f > > > > cexint, zexint > > http://www.netlib.org/toms-2014-06-10/683 > > > > I have checked cexint, zexint by cqccex.f and zqccex.f. > > QUICK CHECKS FOR CEXINT ARE OK. > > QUICK CHECKS FOR ZEXINT ARE OK. > > > > all.dem runs without problem > > > > However, load 'expint.dem' seems to be invaild. > > See the below screenshot files > > http://tmacchant33.starfree.jp/Files/expint1.png > > http://tmacchant33.starfree.jp/Files/expint2.png > > > > Any suggestions? > > > > Refernce > > confiure > > LDFLAGS='-L/usr/local/lib -lamos' \ > > ./configure --prefix=/cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/usr/local \ > > --with-qt=no \ > > --disable-dependency-tracking \ > > --enable-plugins \ > > --with-latex \ > > --with-kpsexpand \ > > --with-x \ > > --with-readline=gnu \ > > --with-gd \ > > --with-lua \ > > --with-bitmap-terminals \ > > --enable-history-file \ > > --enable-stats \ > > --without-ggi \ > > --without-gpic \ > > --without-mif > > > > config.log > > http://tmacchant33.starfree.jp/Files/config.log > > > > Tatsuro > > Sorry I did see config.log in details. > > gnuplot will be compiled with the following configurable features: > > Mouse support in interactive terminals: yes > Typing <space> in plot window raises console: yes > Readline library: GNU readline library with -lncurses > Command-line history file: yes > Check current directory for .gnuplot file: no (use --with-cwdrc to enable) > Sort help/subtopic tables by column: no (use --without-row-help to enable) > cerf() and other special functions from libcerf: yes > Airy and Bessel functions from libopenspecfun or libamos: yes > Complex exponential integral cexint from libamos: yes > plugin support for loading external functions: yes > Statistical summary of data ("stats" command): yes > > But config.log says > > configure:8714: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 > configure:8714: $? = 0 > configure:8734: result: -lcerf > configure:8766: checking for amos libraries using LDFLAGS: -L/usr/local/lib -lamos -L/lib -lcerf > configure:8769: checking for library containing zairy_ > configure:8799: gcc -o conftest.exe -g -O2 -I/include -L/usr/local/lib -lamos -L/lib -lcerf conftest.c -lcerf >&5 > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccYZXooH.o: in function `main': > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_' > collect2: error: ld returned 1 exit status > configure:8799: $? = 1 > > def file of libamos has zairy_ symbol > > Hmmmm? > > Tatsuro > > > > _______________________________________________ > gnuplot-beta mailing list > gnu...@li... > Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-beta > -- Ethan A Merritt Biomolecular Structure Center, K-428 Health Sciences Bldg MS 357742, University of Washington, Seattle 98195-7742 |