So, I tried building against GCC 4.1.0 and Solaris 8 and have issues
with lrintf().. configure claims it's not available (I'd agree) but gcc complains when building lib-src/lrintf.c complaining about conflicting definitions for that function. So, I invoked the compiler for just the preprocessor and below is the output : # 1 "lrintf.c" # 1 "/export/home/rflower/src/lang/smalltalk/smalltalk-3.2.4/lib-src//" # 1 "<built-in>" # 1 "<command line>" # 1 "lrintf.c" # 53 "lrintf.c" # 1 "/usr/local/gcc-3.4.3/lib/gcc/sparc-sun-solaris2.8/3.4.3/include/float.h" 1 3 4 # 54 "lrintf.c" 2 # 1 "mathl.h" 1 # 56 "mathl.h" extern long double acosl(long double x); extern long double asinl (long double x); extern long double atanl (long double x); extern long double ceill(long double x); extern long double cosl(long double x); extern long double expl (long double x); extern long double floorl(long double x); extern long double frexpl(long double x, int *exp); extern long double ldexpl(long double x, int exp); extern long double logl(long double x); extern long double sinl (long double x); extern long double sqrtl(long double x); extern long double tanl (long double x); extern long double truncl(long double x); extern double trunc(double x); extern float truncf(float x); extern long lrintl(long double x); extern long lrint(double x); extern long lrintf(float x); # 56 "lrintf.c" 2 float lrintf(float x) { float y; if (x < 0.0L) { y = -(1.0L / 1.19209290e-7F - x - 1.0 / 1.19209290e-7F); if (y < x) y = y + 1.0L; } else { y = 1.0L / 1.19209290e-7F + x - 1.0 / 1.19209290e-7F; if (y > x) y = y - 1.0L; } return (long) y; } Notice that GST's 'mathl.h' defines lrintf() as returning a long but the function itself is returning a float.. In light of the fact that the last line of the lrintf() function is returning a value converted to long care of casting, I'm going to assume that the above function should be returning a long and NOT a float. Once I made that change it compiled and moved on with other items to build... I'm guessing some versions of GCC may be letting that slide but newer versions are more picky about prototypes not matching better. Now I just need to figure out why it wont build a gst.im for some reason.. _______________________________________________ help-smalltalk mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-smalltalk |
Ok.. Next issue -- bus error when near the end.. Below is what the core
file had to say : ~/src/lang/smalltalk/smalltalk-3.2.4 [2129]> gdb ./.libs/gst core GNU gdb 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sparc-sun-solaris2.8"... Core was generated by `/export/home/rflower/src/lang/smalltalk/smalltalk-3.2.4/.libs/gst --no-user-fil'. Program terminated with signal 10, Bus error. Reading symbols from /export/home1/rflower/src/lang/smalltalk/smalltalk-3.2.4/libgst/.libs/libgst.so.7...done. Loaded symbols for /export/home/rflower/src/lang/smalltalk/smalltalk-3.2.4/libgst/.libs/libgst.so.7 Reading symbols from /usr/local/lib/libltdl.so.7...done. Loaded symbols for /usr/local/lib/libltdl.so.7 Reading symbols from /usr/local/lib/libgmp.so.3...done. Loaded symbols for /usr/local/lib/libgmp.so.3 Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/libm.so.1...done. Loaded symbols for /usr/lib/libm.so.1 Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /usr/local/lib/libgcc_s.so.1...done. Loaded symbols for /usr/local/lib/libgcc_s.so.1 Reading symbols from /usr/lib/libaio.so.1...done. Loaded symbols for /usr/lib/libaio.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1...done. Loaded symbols for /usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1 #0 0x7faf37e4 in send_block_value (numArgs=1, cull_up_to=181) at interp-bc.inl:434 434 SET_THIS_METHOD (closure->block, 0); Breakpoint 1 at 0x7f7b5958 (gdb) print closure $1 = (gst_block_closure) 0x487e68 (gdb) print closure->block $2 = (OOP) 0xb5 (gdb) where #0 0x7faf37e4 in send_block_value (numArgs=1, cull_up_to=181) at interp-bc.inl:434 #1 0x7fafa1b0 in _gst_interpret (processOOP=0x7b43cd30) at vm.def:600 #2 0x7fb0b1d8 in _gst_nvmsg_send (receiver=0x7b403470, sendSelector=0x7b4084f8, args=0xffbee924, sendArgs=1) at interp.c:2291 #3 0x7fad0698 in _gst_va_msg_sendf (resultPtr=0x0, fmt=0x7fb30170 "%v %o instanceVariableNames: %S", ap=0xffbeeb44) at callin.c:305 #4 0x7fad10bc in _gst_msg_sendf (resultPtr=0x0, fmt=0x7fb30170 "%v %o instanceVariableNames: %S") at callin.c:380 #5 0x7fa941a8 in parse_class_definition (p=0xffbeecf0, classOOP=0x7b403470, extend=false) at gst-parse.c:1099 #6 0x7fa96dec in parse_doit (p=0xffbeecf0, fail_at_eof=4372016) at gst-parse.c:521 #7 0x7fa970b4 in parse_chunks (p=0xffbeecf0) at gst-parse.c:364 #8 0x7fa97240 in _gst_parse_chunks () at gst-parse.c:341 #9 0x7fa99274 in _gst_parse_stream (method=false) at lex.c:1186 #10 0x7facce64 in _gst_process_file (fileName=0x3 <Address 0x3 out of bounds>, dir=158720) at input.c:846 #11 0x7fa8f824 in _gst_initialize (kernel_dir=0xffbef26b "./kernel", image_file=0xffbef27c "gst.im", flags=5) at files.c:580 #12 0x00011588 in main (argc=8, argv=0xffbef07c) at main.c:385 Here's where it was in the build process when it choked : libtool: link: /usr/local/gcc-3.4.3/bin/gcc -g -O2 -Wall -Wno-strict-aliasing -Wno-switch -fno-gcse -fstrict-aliasing -Wdeclaration-after-statemen t -Wno-format -Wpointer-arith -Wwrite-strings -o .libs/gst-tool gst-tool.o libgst/.libs/libgst.so /usr/local/lib/libltdl.so /usr/local/lib/libgmp .so lib-src/.libs/library.a -ldl -lrt -lnsl -lsocket -lm -R/export/home/rflower/gst/lib -R/usr/local/lib ./gst --no-user-files --kernel-dir "./kernel" --image gst.im -iQ /dev/null make[2]: *** [gst.im] Bus Error (core dumped) make[2]: Leaving directory `/export/home1/rflower/src/lang/smalltalk/smalltalk-3.2.4' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/export/home1/rflower/src/lang/smalltalk/smalltalk-3.2.4' make: *** [all] Error 2 Any ideas? _______________________________________________ help-smalltalk mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-smalltalk |
Ok.. Got past things a bit -- I was NOT using GCC-4.1.0 but rather
3.4.3.. I switched to using the newer compiler and the bus error I was getting disappeared. However, I did have some issues with a really old version of GDBM (from 1999) that caused a bunch of linker errors -- after hacking the top-level Makefile to omit that package from being built I was able to install GST 3.2.4 over my older 3.2 install from sometime in 2010. I've still got an exception issue but will put that in a separate email.. _______________________________________________ help-smalltalk mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-smalltalk |
In reply to this post by Rick Flower-2
Il 31/10/2012 15:58, Rick Flower ha scritto:
> > Notice that GST's 'mathl.h' defines lrintf() as returning a > long but the function itself is returning a float.. In light > of the fact that the last line of the lrintf() function is > returning a value converted to long care of casting, I'm going > to assume that the above function should be returning a long > and NOT a float. Once I made that change it compiled and moved > on with other items to build... Yes, applying that change. _______________________________________________ help-smalltalk mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/help-smalltalk |
Free forum by Nabble | Edit this page |