Build issues with 3.2.4 and Solaris 8 using GCC-4.1.0

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Build issues with 3.2.4 and Solaris 8 using GCC-4.1.0

Rick Flower-2
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
Reply | Threaded
Open this post in threaded view
|

Re: Build issues with 3.2.4 and Solaris 8 using GCC-4.1.0

Rick Flower-2
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
Reply | Threaded
Open this post in threaded view
|

Re: Build issues with 3.2.4 and Solaris 8 using GCC-4.1.0

Rick Flower-2
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
Reply | Threaded
Open this post in threaded view
|

Re: Build issues with 3.2.4 and Solaris 8 using GCC-4.1.0

Paolo Bonzini-2
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