Installing 1.8.6 from source on RHEL4 x86_64

Discussion in 'Ruby' started by Costas, May 24, 2007.

  1. Costas

    Costas Guest

    I've been fiddling with installing each of the stable snapshot and the
    1.8.6 build on the Download Ruby page and it barfs on me.

    I'm running RHEL4 on x86_64 ( Red Hat Enterprise Linux AS release 4
    (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    17:57:31 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux

    I run the configure script, and then make.

    When building it, it seems to trip on bigdecimal:

    make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    bigdecimal'
    gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    bigdecimal.c
    gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/
    x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    against `a local symbol' can not be used when making a shared object;
    recompile with -fPIC
    /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    libm.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    bigdecimal'
    make: *** [all] Error 1

    Here's the output of ./configure:

    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking whether gcc needs -traditional... no
    checking whether the linker is GNU ld... yes
    checking whether gcc -E accepts -o... yes
    checking for bison... bison -y
    checking for ranlib... ranlib
    checking for ar... ar
    checking for as... as
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for AIX... no
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for long long... yes
    checking for off_t... yes
    checking for int... yes
    checking size of int... 4
    checking for short... yes
    checking size of short... 2
    checking for long... yes
    checking size of long... 8
    checking for long long... (cached) yes
    checking size of long long... 8
    checking for __int64... no
    checking size of __int64... 0
    checking for off_t... (cached) yes
    checking size of off_t... 8
    checking for void*... yes
    checking size of void*... 8
    checking for float... yes
    checking size of float... 4
    checking for double... yes
    checking size of double... 8
    checking for time_t... yes
    checking size of time_t... 8
    checking for pid_t... yes
    checking for gid_t... yes
    checking for uid_t... yes
    checking for prototypes... yes
    checking token paste string... ansi
    checking for variable length prototypes and stdarg.h... yes
    checking for noreturn function attribute... __attribute__ ((noreturn))
    x
    checking for noinline function attribute... __attribute__ ((noinline))
    x
    checking for RUBY_EXTERN... no
    checking whether sys_nerr is declared... yes
    checking for crypt in -lcrypt... yes
    checking for dlopen in -ldl... no
    checking for shl_load in -ldld... no
    checking for dirent.h that defines DIR... yes
    checking for library containing opendir... none required
    checking for ANSI C header files... (cached) yes
    checking for sys/wait.h that is POSIX.1 compatible... yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking limits.h usability... yes
    checking limits.h presence... yes
    checking for limits.h... yes
    checking sys/file.h usability... yes
    checking sys/file.h presence... yes
    checking for sys/file.h... yes
    checking sys/ioctl.h usability... yes
    checking sys/ioctl.h presence... yes
    checking for sys/ioctl.h... yes
    checking sys/syscall.h usability... yes
    checking sys/syscall.h presence... yes
    checking for sys/syscall.h... yes
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking sys/fcntl.h usability... yes
    checking sys/fcntl.h presence... yes
    checking for sys/fcntl.h... yes
    checking sys/select.h usability... yes
    checking sys/select.h presence... yes
    checking for sys/select.h... yes
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking sys/times.h usability... yes
    checking sys/times.h presence... yes
    checking for sys/times.h... yes
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking syscall.h usability... yes
    checking syscall.h presence... yes
    checking for syscall.h... yes
    checking pwd.h usability... yes
    checking pwd.h presence... yes
    checking for pwd.h... yes
    checking grp.h usability... yes
    checking grp.h presence... yes
    checking for grp.h... yes
    checking a.out.h usability... yes
    checking a.out.h presence... yes
    checking for a.out.h... yes
    checking utime.h usability... yes
    checking utime.h presence... yes
    checking for utime.h... yes
    checking for memory.h... (cached) yes
    checking direct.h usability... no
    checking direct.h presence... no
    checking for direct.h... no
    checking sys/resource.h usability... yes
    checking sys/resource.h presence... yes
    checking for sys/resource.h... yes
    checking sys/mkdev.h usability... no
    checking sys/mkdev.h presence... no
    checking for sys/mkdev.h... no
    checking sys/utime.h usability... no
    checking sys/utime.h presence... no
    checking for sys/utime.h... no
    checking netinet/in_systm.h usability... yes
    checking netinet/in_systm.h presence... yes
    checking for netinet/in_systm.h... yes
    checking float.h usability... yes
    checking float.h presence... yes
    checking for float.h... yes
    checking ieeefp.h usability... no
    checking ieeefp.h presence... no
    checking for ieeefp.h... no
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking ucontext.h usability... yes
    checking ucontext.h presence... yes
    checking for ucontext.h... yes
    checking intrinsics.h usability... no
    checking intrinsics.h presence... no
    checking for intrinsics.h... no
    checking for rlim_t... yes
    checking size of rlim_t... 8
    checking for size_t... yes
    checking for struct stat.st_blksize... yes
    checking for struct stat.st_blocks... yes
    checking for struct stat.st_rdev... yes
    checking for uid_t in sys/types.h... (cached) yes
    checking type of array argument to getgroups... gid_t
    checking return type of signal handlers... void
    checking for working alloca.h... yes
    checking for alloca... yes
    checking for working memcmp... yes
    checking for _LARGEFILE_SOURCE value needed for large files... 1
    checking for ftello... yes
    checking for dup2... yes
    checking for memmove... yes
    checking for strcasecmp... yes
    checking for strncasecmp... yes
    checking for strerror... yes
    checking for strftime... yes
    checking for strchr... yes
    checking for strstr... yes
    checking for strtoul... yes
    checking for crypt... yes
    checking for flock... yes
    checking for vsnprintf... yes
    checking for isnan... yes
    checking for finite... yes
    checking for isinf... yes
    checking for hypot... yes
    checking for acosh... yes
    checking for erf... yes
    checking for fmod... yes
    checking for killpg... yes
    checking for wait4... yes
    checking for waitpid... yes
    checking for syscall... yes
    checking for chroot... yes
    checking for fsync... yes
    checking for getcwd... yes
    checking for eaccess... no
    checking for truncate... yes
    checking for chsize... no
    checking for times... yes
    checking for utimes... yes
    checking for fcntl... yes
    checking for lockf... yes
    checking for lstat... yes
    checking for symlink... yes
    checking for link... yes
    checking for readlink... yes
    checking for setitimer... yes
    checking for setruid... no
    checking for seteuid... yes
    checking for setreuid... yes
    checking for setresuid... yes
    checking for setproctitle... no
    checking for setrgid... no
    checking for setegid... yes
    checking for setregid... yes
    checking for setresgid... yes
    checking for issetugid... no
    checking for pause... yes
    checking for lchown... yes
    checking for lchmod... no
    checking for getpgrp... yes
    checking for setpgrp... yes
    checking for getpgid... yes
    checking for setpgid... yes
    checking for initgroups... yes
    checking for getgroups... yes
    checking for setgroups... yes
    checking for getpriority... yes
    checking for getrlimit... yes
    checking for setrlimit... yes
    checking for sysconf... yes
    checking for dlopen... no
    checking for sigprocmask... yes
    checking for sigaction... yes
    checking for _setjmp... yes
    checking for setsid... yes
    checking for telldir... yes
    checking for seekdir... yes
    checking for fchmod... yes
    checking for mktime... yes
    checking for timegm... yes
    checking for cosh... yes
    checking for sinh... yes
    checking for tanh... yes
    checking for setuid... yes
    checking for setgid... yes
    checking for setenv... yes
    checking for unsetenv... yes
    checking whether struct tm is in sys/time.h or time.h... time.h
    checking for struct tm.tm_zone... yes
    checking for struct tm.tm_gmtoff... yes
    checking for external int daylight... yes
    checking for negative time_t for gmtime(3)... yes
    checking whether getpgrp requires zero arguments... yes
    checking whether setpgrp takes no argument... yes
    checking whether byte ordering is bigendian... no
    checking for an ANSI C-conforming const... yes
    checking whether char is unsigned... no
    checking for inline... inline
    checking for working volatile... yes
    checking whether right shift preserve sign bit... yes
    checking read count field in FILE structures... not found(OK if using
    GNU libc)
    checking read buffer ptr field in FILE structures... _IO_read_ptr
    checking read buffer end field in FILE structures... _IO_read_end
    checking whether need to seek between R/W... no
    checking whether st_ino is huge... no
    checking whether _SC_CLK_TCK is supported... yes
    checking stack growing direction... -1
    checking whether ELF binaries are produced... yes
    checking whether OS depend dynamic link works... yes
    checking for nroff... /usr/bin/nroff
    config.h unchanged
    configure: creating ./config.status
    config.status: creating Makefile
    Costas, May 24, 2007
    #1
    1. Advertising

  2. Costas

    Costas Guest

    On May 24, 1:11 pm, Costas <> wrote:
    > I've been fiddling with installing each of the stable snapshot and the
    > 1.8.6 build on the Download Ruby page and it barfs on me.
    >
    > I'm running RHEL4 on x86_64 ( Red Hat Enterprise Linux AS release 4
    > (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    > 17:57:31 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
    >
    > I run the configure script, and then make.
    >
    > When building it, it seems to trip on bigdecimal:
    >
    > make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    > bigdecimal'
    > gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    > bigdecimal.c
    > gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/
    > x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > against `a local symbol' can not be used when making a shared object;
    > recompile with -fPIC
    > /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    > libm.a: could not read symbols: Bad value
    > collect2: ld returned 1 exit status
    > make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    > make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    > bigdecimal'
    > make: *** [all] Error 1
    >
    > Here's the output of ./configure:
    >
    > checking build system type... x86_64-unknown-linux-gnu
    > checking host system type... x86_64-unknown-linux-gnu
    > checking target system type... x86_64-unknown-linux-gnu
    > checking for gcc... gcc
    > checking for C compiler default output file name... a.out
    > checking whether the C compiler works... yes
    > checking whether we are cross compiling... no
    > checking for suffix of executables...
    > checking for suffix of object files... o
    > checking whether we are using the GNU C compiler... yes
    > checking whether gcc accepts -g... yes
    > checking for gcc option to accept ISO C89... none needed
    > checking how to run the C preprocessor... gcc -E
    > checking for grep that handles long lines and -e... /bin/grep
    > checking for egrep... /bin/grep -E
    > checking whether gcc needs -traditional... no
    > checking whether the linker is GNU ld... yes
    > checking whether gcc -E accepts -o... yes
    > checking for bison... bison -y
    > checking for ranlib... ranlib
    > checking for ar... ar
    > checking for as... as
    > checking whether ln -s works... yes
    > checking whether make sets $(MAKE)... yes
    > checking for a BSD-compatible install... /usr/bin/install -c
    > checking for AIX... no
    > checking for ANSI C header files... yes
    > checking for sys/types.h... yes
    > checking for sys/stat.h... yes
    > checking for stdlib.h... yes
    > checking for string.h... yes
    > checking for memory.h... yes
    > checking for strings.h... yes
    > checking for inttypes.h... yes
    > checking for stdint.h... yes
    > checking for unistd.h... yes
    > checking minix/config.h usability... no
    > checking minix/config.h presence... no
    > checking for minix/config.h... no
    > checking for special C compiler options needed for large files... no
    > checking for _FILE_OFFSET_BITS value needed for large files... no
    > checking for long long... yes
    > checking for off_t... yes
    > checking for int... yes
    > checking size of int... 4
    > checking for short... yes
    > checking size of short... 2
    > checking for long... yes
    > checking size of long... 8
    > checking for long long... (cached) yes
    > checking size of long long... 8
    > checking for __int64... no
    > checking size of __int64... 0
    > checking for off_t... (cached) yes
    > checking size of off_t... 8
    > checking for void*... yes
    > checking size of void*... 8
    > checking for float... yes
    > checking size of float... 4
    > checking for double... yes
    > checking size of double... 8
    > checking for time_t... yes
    > checking size of time_t... 8
    > checking for pid_t... yes
    > checking for gid_t... yes
    > checking for uid_t... yes
    > checking for prototypes... yes
    > checking token paste string... ansi
    > checking for variable length prototypes and stdarg.h... yes
    > checking for noreturn function attribute... __attribute__ ((noreturn))
    > x
    > checking for noinline function attribute... __attribute__ ((noinline))
    > x
    > checking for RUBY_EXTERN... no
    > checking whether sys_nerr is declared... yes
    > checking for crypt in -lcrypt... yes
    > checking for dlopen in -ldl... no
    > checking for shl_load in -ldld... no
    > checking for dirent.h that defines DIR... yes
    > checking for library containing opendir... none required
    > checking for ANSI C header files... (cached) yes
    > checking for sys/wait.h that is POSIX.1 compatible... yes
    > checking for stdlib.h... (cached) yes
    > checking for string.h... (cached) yes
    > checking for unistd.h... (cached) yes
    > checking limits.h usability... yes
    > checking limits.h presence... yes
    > checking for limits.h... yes
    > checking sys/file.h usability... yes
    > checking sys/file.h presence... yes
    > checking for sys/file.h... yes
    > checking sys/ioctl.h usability... yes
    > checking sys/ioctl.h presence... yes
    > checking for sys/ioctl.h... yes
    > checking sys/syscall.h usability... yes
    > checking sys/syscall.h presence... yes
    > checking for sys/syscall.h... yes
    > checking fcntl.h usability... yes
    > checking fcntl.h presence... yes
    > checking for fcntl.h... yes
    > checking sys/fcntl.h usability... yes
    > checking sys/fcntl.h presence... yes
    > checking for sys/fcntl.h... yes
    > checking sys/select.h usability... yes
    > checking sys/select.h presence... yes
    > checking for sys/select.h... yes
    > checking sys/time.h usability... yes
    > checking sys/time.h presence... yes
    > checking for sys/time.h... yes
    > checking sys/times.h usability... yes
    > checking sys/times.h presence... yes
    > checking for sys/times.h... yes
    > checking sys/param.h usability... yes
    > checking sys/param.h presence... yes
    > checking for sys/param.h... yes
    > checking syscall.h usability... yes
    > checking syscall.h presence... yes
    > checking for syscall.h... yes
    > checking pwd.h usability... yes
    > checking pwd.h presence... yes
    > checking for pwd.h... yes
    > checking grp.h usability... yes
    > checking grp.h presence... yes
    > checking for grp.h... yes
    > checking a.out.h usability... yes
    > checking a.out.h presence... yes
    > checking for a.out.h... yes
    > checking utime.h usability... yes
    > checking utime.h presence... yes
    > checking for utime.h... yes
    > checking for memory.h... (cached) yes
    > checking direct.h usability... no
    > checking direct.h presence... no
    > checking for direct.h... no
    > checking sys/resource.h usability... yes
    > checking sys/resource.h presence... yes
    > checking for sys/resource.h... yes
    > checking sys/mkdev.h usability... no
    > checking sys/mkdev.h presence... no
    > checking for sys/mkdev.h... no
    > checking sys/utime.h usability... no
    > checking sys/utime.h presence... no
    > checking for sys/utime.h... no
    > checking netinet/in_systm.h usability... yes
    > checking netinet/in_systm.h presence... yes
    > checking for netinet/in_systm.h... yes
    > checking float.h usability... yes
    > checking float.h presence... yes
    > checking for float.h... yes
    > checking ieeefp.h usability... no
    > checking ieeefp.h presence... no
    > checking for ieeefp.h... no
    > checking pthread.h usability... yes
    > checking pthread.h presence... yes
    > checking for pthread.h... yes
    > checking ucontext.h usability... yes
    > checking ucontext.h presence... yes
    > checking for ucontext.h... yes
    > checking intrinsics.h usability... no
    > checking intrinsics.h presence... no
    > checking for intrinsics.h... no
    > checking for rlim_t... yes
    > checking size of rlim_t... 8
    > checking for size_t... yes
    > checking for struct stat.st_blksize... yes
    > checking for struct stat.st_blocks... yes
    > checking for struct stat.st_rdev... yes
    > checking for uid_t in sys/types.h... (cached) yes
    > checking type of array argument to getgroups... gid_t
    > checking return type of signal handlers... void
    > checking for working alloca.h... yes
    > checking for alloca... yes
    > checking for working memcmp... yes
    > checking for _LARGEFILE_SOURCE value needed for large files... 1
    > checking for ftello... yes
    > checking for dup2... yes
    > checking for memmove... yes
    > checking for strcasecmp... yes
    > checking for strncasecmp... yes
    > checking for strerror... yes
    > checking for strftime... yes
    > checking for strchr... yes
    > checking for strstr... yes
    > checking for strtoul... yes
    > checking for crypt... yes
    > checking for flock... yes
    > checking for vsnprintf... yes
    > checking for isnan... yes
    > checking for finite... yes
    > checking for isinf... yes
    > checking for hypot... yes
    > checking for acosh... yes
    > checking for erf... yes
    > checking for fmod... yes
    > checking for killpg... yes
    > checking for wait4... yes
    > checking for waitpid... yes
    > checking for syscall... yes
    > checking for chroot... yes
    > checking for fsync... yes
    > checking for getcwd... yes
    > checking for eaccess... no
    > checking for truncate... yes
    > checking for chsize... no
    > checking for times... yes
    > checking for utimes... yes
    > checking for fcntl... yes
    > checking for lockf... yes
    > checking for lstat... yes
    > checking for symlink... yes
    > checking for link... yes
    > checking for readlink... yes
    > checking for setitimer... yes
    > checking for setruid... no
    > checking for seteuid... yes
    > checking for setreuid... yes
    > checking for setresuid... yes
    > checking for setproctitle... no
    > checking for setrgid... no
    > checking for setegid... yes
    > checking for setregid... yes
    > checking for setresgid... yes
    > checking for issetugid... no
    > checking for pause... yes
    > checking for lchown... yes
    > checking for lchmod... no
    > checking for getpgrp... yes
    > checking for setpgrp... yes
    > checking for getpgid... yes
    > checking for setpgid... yes
    > checking for initgroups... yes
    > checking for getgroups... yes
    > checking for setgroups... yes
    > checking for getpriority... yes
    > checking for getrlimit... yes
    > checking for setrlimit... yes
    > checking for sysconf... yes
    > checking for dlopen... no
    > checking for sigprocmask... yes
    > checking for sigaction... yes
    > checking for _setjmp... yes
    > checking for setsid... yes
    > checking for telldir... yes
    > checking for seekdir... yes
    > checking for fchmod... yes
    > checking for mktime... yes
    > checking for timegm... yes
    > checking for cosh... yes
    > checking for sinh... yes
    > checking for tanh... yes
    > checking for setuid... yes
    > checking for setgid... yes
    > checking for setenv... yes
    > checking for unsetenv... yes
    > checking whether struct tm is in sys/time.h or time.h... time.h
    > checking for struct tm.tm_zone... yes
    > checking for struct tm.tm_gmtoff... yes
    > checking for external int daylight... yes
    > checking for negative time_t for gmtime(3)... yes
    > checking whether getpgrp requires zero arguments... yes
    > checking whether setpgrp takes no argument... yes
    > checking whether byte ordering is bigendian... no
    > checking for an ANSI C-conforming const... yes
    > checking whether char is unsigned... no
    > checking for inline... inline
    > checking for working volatile... yes
    > checking whether right shift preserve sign bit... yes
    > checking read count field in FILE structures... not found(OK if using
    > GNU libc)
    > checking read buffer ptr field in FILE structures... _IO_read_ptr
    > checking read buffer end field in FILE structures... _IO_read_end
    > checking whether need to seek between R/W... no
    > checking whether st_ino is huge... no
    > checking whether _SC_CLK_TCK is supported... yes
    > checking stack growing direction... -1
    > checking whether ELF binaries are produced... yes
    > checking whether OS depend dynamic link works... yes
    > checking for nroff... /usr/bin/nroff
    > config.h unchanged
    > configure: creating ./config.status
    > config.status: creating Makefile


    Bump -> anyone know what's up?
    Costas, May 25, 2007
    #2
    1. Advertising

  3. Costas

    Costas Guest

    On May 24, 1:11 pm, Costas <> wrote:
    > I've been fiddling with installing each of the stable snapshot and the
    > 1.8.6 build on the Download Ruby page and it barfs on me.
    >
    > I'm running RHEL4 onx86_64( Red Hat Enterprise Linux AS release 4
    > (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    > 17:57:31 EDT 2006x86_64x86_64x86_64GNU/Linux
    >
    > I run the configure script, and then make.
    >
    > When building it, it seems to trip on bigdecimal:
    >
    > make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    > bigdecimal'
    > gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    > bigdecimal.c
    > gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > against `a local symbol' can not be used when making a shared object;
    > recompile with -fPIC
    > /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    > libm.a: could not read symbols: Bad value
    > collect2: ld returned 1 exit status
    > make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    > make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    > bigdecimal'
    > make: *** [all] Error 1
    >
    > Here's the output of ./configure:
    >
    > checking build system type...x86_64-unknown-linux-gnu
    > checking host system type...x86_64-unknown-linux-gnu
    > checking target system type...x86_64-unknown-linux-gnu
    > checking for gcc... gcc
    > checking for C compiler default output file name... a.out
    > checking whether the C compiler works... yes
    > checking whether we are cross compiling... no
    > checking for suffix of executables...
    > checking for suffix of object files... o
    > checking whether we are using the GNU C compiler... yes
    > checking whether gcc accepts -g... yes
    > checking for gcc option to accept ISO C89... none needed
    > checking how to run the C preprocessor... gcc -E
    > checking for grep that handles long lines and -e... /bin/grep
    > checking for egrep... /bin/grep -E
    > checking whether gcc needs -traditional... no
    > checking whether the linker is GNU ld... yes
    > checking whether gcc -E accepts -o... yes
    > checking for bison... bison -y
    > checking for ranlib... ranlib
    > checking for ar... ar
    > checking for as... as
    > checking whether ln -s works... yes
    > checking whether make sets $(MAKE)... yes
    > checking for a BSD-compatible install... /usr/bin/install -c
    > checking for AIX... no
    > checking for ANSI C header files... yes
    > checking for sys/types.h... yes
    > checking for sys/stat.h... yes
    > checking for stdlib.h... yes
    > checking for string.h... yes
    > checking for memory.h... yes
    > checking for strings.h... yes
    > checking for inttypes.h... yes
    > checking for stdint.h... yes
    > checking for unistd.h... yes
    > checking minix/config.h usability... no
    > checking minix/config.h presence... no
    > checking for minix/config.h... no
    > checking for special C compiler options needed for large files... no
    > checking for _FILE_OFFSET_BITS value needed for large files... no
    > checking for long long... yes
    > checking for off_t... yes
    > checking for int... yes
    > checking size of int... 4
    > checking for short... yes
    > checking size of short... 2
    > checking for long... yes
    > checking size of long... 8
    > checking for long long... (cached) yes
    > checking size of long long... 8
    > checking for __int64... no
    > checking size of __int64... 0
    > checking for off_t... (cached) yes
    > checking size of off_t... 8
    > checking for void*... yes
    > checking size of void*... 8
    > checking for float... yes
    > checking size of float... 4
    > checking for double... yes
    > checking size of double... 8
    > checking for time_t... yes
    > checking size of time_t... 8
    > checking for pid_t... yes
    > checking for gid_t... yes
    > checking for uid_t... yes
    > checking for prototypes... yes
    > checking token paste string... ansi
    > checking for variable length prototypes and stdarg.h... yes
    > checking for noreturn function attribute... __attribute__ ((noreturn))
    > x
    > checking for noinline function attribute... __attribute__ ((noinline))
    > x
    > checking for RUBY_EXTERN... no
    > checking whether sys_nerr is declared... yes
    > checking for crypt in -lcrypt... yes
    > checking for dlopen in -ldl... no
    > checking for shl_load in -ldld... no
    > checking for dirent.h that defines DIR... yes
    > checking for library containing opendir... none required
    > checking for ANSI C header files... (cached) yes
    > checking for sys/wait.h that is POSIX.1 compatible... yes
    > checking for stdlib.h... (cached) yes
    > checking for string.h... (cached) yes
    > checking for unistd.h... (cached) yes
    > checking limits.h usability... yes
    > checking limits.h presence... yes
    > checking for limits.h... yes
    > checking sys/file.h usability... yes
    > checking sys/file.h presence... yes
    > checking for sys/file.h... yes
    > checking sys/ioctl.h usability... yes
    > checking sys/ioctl.h presence... yes
    > checking for sys/ioctl.h... yes
    > checking sys/syscall.h usability... yes
    > checking sys/syscall.h presence... yes
    > checking for sys/syscall.h... yes
    > checking fcntl.h usability... yes
    > checking fcntl.h presence... yes
    > checking for fcntl.h... yes
    > checking sys/fcntl.h usability... yes
    > checking sys/fcntl.h presence... yes
    > checking for sys/fcntl.h... yes
    > checking sys/select.h usability... yes
    > checking sys/select.h presence... yes
    > checking for sys/select.h... yes
    > checking sys/time.h usability... yes
    > checking sys/time.h presence... yes
    > checking for sys/time.h... yes
    > checking sys/times.h usability... yes
    > checking sys/times.h presence... yes
    > checking for sys/times.h... yes
    > checking sys/param.h usability... yes
    > checking sys/param.h presence... yes
    > checking for sys/param.h... yes
    > checking syscall.h usability... yes
    > checking syscall.h presence... yes
    > checking for syscall.h... yes
    > checking pwd.h usability... yes
    > checking pwd.h presence... yes
    > checking for pwd.h... yes
    > checking grp.h usability... yes
    > checking grp.h presence... yes
    > checking for grp.h... yes
    > checking a.out.h usability... yes
    > checking a.out.h presence... yes
    > checking for a.out.h... yes
    > checking utime.h usability... yes
    > checking utime.h presence... yes
    > checking for utime.h... yes
    > checking for memory.h... (cached) yes
    > checking direct.h usability... no
    > checking direct.h presence... no
    > checking for direct.h... no
    > checking sys/resource.h usability... yes
    > checking sys/resource.h presence... yes
    > checking for sys/resource.h... yes
    > checking sys/mkdev.h usability... no
    > checking sys/mkdev.h presence... no
    > checking for sys/mkdev.h... no
    > checking sys/utime.h usability... no
    > checking sys/utime.h presence... no
    > checking for sys/utime.h... no
    > checking netinet/in_systm.h usability... yes
    > checking netinet/in_systm.h presence... yes
    > checking for netinet/in_systm.h... yes
    > checking float.h usability... yes
    > checking float.h presence... yes
    > checking for float.h... yes
    > checking ieeefp.h usability... no
    > checking ieeefp.h presence... no
    > checking for ieeefp.h... no
    > checking pthread.h usability... yes
    > checking pthread.h presence... yes
    > checking for pthread.h... yes
    > checking ucontext.h usability... yes
    > checking ucontext.h presence... yes
    > checking for ucontext.h... yes
    > checking intrinsics.h usability... no
    > checking intrinsics.h presence... no
    > checking for intrinsics.h... no
    > checking for rlim_t... yes
    > checking size of rlim_t... 8
    > checking for size_t... yes
    > checking for struct stat.st_blksize... yes
    > checking for struct stat.st_blocks... yes
    > checking for struct stat.st_rdev... yes
    > checking for uid_t in sys/types.h... (cached) yes
    > checking type of array argument to getgroups... gid_t
    > checking return type of signal handlers... void
    > checking for working alloca.h... yes
    > checking for alloca... yes
    > checking for working memcmp... yes
    > checking for _LARGEFILE_SOURCE value needed for large files... 1
    > checking for ftello... yes
    > checking for dup2... yes
    > checking for memmove... yes
    > checking for strcasecmp... yes
    > checking for strncasecmp... yes
    > checking for strerror... yes
    > checking for strftime... yes
    > checking for strchr... yes
    > checking for strstr... yes
    > checking for strtoul... yes
    > checking for crypt... yes
    > checking for flock... yes
    > checking for vsnprintf... yes
    > checking for isnan... yes
    > checking for finite... yes
    > checking for isinf... yes
    > checking for hypot... yes
    > checking for acosh... yes
    > checking for erf... yes
    > checking for fmod... yes
    > checking for killpg... yes
    > checking for wait4... yes
    > checking for waitpid... yes
    > checking for syscall... yes
    > checking for chroot... yes
    > checking for fsync... yes
    > checking for getcwd... yes
    > checking for eaccess... no
    > checking for truncate... yes
    > checking for chsize... no
    > checking for times... yes
    > checking for utimes... yes
    > checking for fcntl... yes
    > checking for lockf... yes
    > checking for lstat... yes
    > checking for symlink... yes
    > checking for link... yes
    > checking for readlink... yes
    > checking for setitimer... yes
    > checking for setruid... no
    > checking for seteuid... yes
    > checking for setreuid... yes
    > checking for setresuid... yes
    > checking for setproctitle... no
    > checking for setrgid... no
    > checking for setegid... yes
    > checking for setregid... yes
    > checking for setresgid... yes
    > checking for issetugid... no
    > checking for pause... yes
    > checking for lchown... yes
    > checking for lchmod... no
    > checking for getpgrp... yes
    > checking for setpgrp... yes
    > checking for getpgid... yes
    > checking for setpgid... yes
    > checking for initgroups... yes
    > checking for getgroups... yes
    > checking for setgroups... yes
    > checking for getpriority... yes
    > checking for getrlimit... yes
    > checking for setrlimit... yes
    > checking for sysconf... yes
    > checking for dlopen... no
    > checking for sigprocmask... yes
    > checking for sigaction... yes
    > checking for _setjmp... yes
    > checking for setsid... yes
    > checking for telldir... yes
    > checking for seekdir... yes
    > checking for fchmod... yes
    > checking for mktime... yes
    > checking for timegm... yes
    > checking for cosh... yes
    > checking for sinh... yes
    > checking for tanh... yes
    > checking for setuid... yes
    > checking for setgid... yes
    > checking for setenv... yes
    > checking for unsetenv... yes
    > checking whether struct tm is in sys/time.h or time.h... time.h
    > checking for struct tm.tm_zone... yes
    > checking for struct tm.tm_gmtoff... yes
    > checking for external int daylight... yes
    > checking for negative time_t for gmtime(3)... yes
    > checking...
    >
    > read more »


    Bump - please - anybody? Help?
    Costas, May 25, 2007
    #3
  4. Costas wrote:
    > On May 24, 1:11 pm, Costas <> wrote:
    >
    >> I've been fiddling with installing each of the stable snapshot and the
    >> 1.8.6 build on the Download Ruby page and it barfs on me.
    >>
    >> I'm running RHEL4 onx86_64( Red Hat Enterprise Linux AS release 4
    >> (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    >> 17:57:31 EDT 2006x86_64x86_64x86_64GNU/Linux
    >>
    >> I run the configure script, and then make.
    >>
    >> When building it, it seems to trip on bigdecimal:
    >>
    >> make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    >> bigdecimal'
    >> gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    >> bigdecimal.c
    >> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    >> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    >> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    >> against `a local symbol' can not be used when making a shared object;
    >> recompile with -fPIC
    >> /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    >> libm.a: could not read symbols: Bad value
    >> collect2: ld returned 1 exit status
    >> make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    >> make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    >> bigdecimal'
    >> make: *** [all] Error 1
    >>
    >> Here's the output of ./configure:
    >>
    >> checking build system type...x86_64-unknown-linux-gnu
    >> checking host system type...x86_64-unknown-linux-gnu
    >> checking target system type...x86_64-unknown-linux-gnu
    >> checking for gcc... gcc
    >> checking for C compiler default output file name... a.out
    >> checking whether the C compiler works... yes
    >> checking whether we are cross compiling... no
    >> checking for suffix of executables...
    >> checking for suffix of object files... o
    >> checking whether we are using the GNU C compiler... yes
    >> checking whether gcc accepts -g... yes
    >> checking for gcc option to accept ISO C89... none needed
    >> checking how to run the C preprocessor... gcc -E
    >> checking for grep that handles long lines and -e... /bin/grep
    >> checking for egrep... /bin/grep -E
    >> checking whether gcc needs -traditional... no
    >> checking whether the linker is GNU ld... yes
    >> checking whether gcc -E accepts -o... yes
    >> checking for bison... bison -y
    >> checking for ranlib... ranlib
    >> checking for ar... ar
    >> checking for as... as
    >> checking whether ln -s works... yes
    >> checking whether make sets $(MAKE)... yes
    >> checking for a BSD-compatible install... /usr/bin/install -c
    >> checking for AIX... no
    >> checking for ANSI C header files... yes
    >> checking for sys/types.h... yes
    >> checking for sys/stat.h... yes
    >> checking for stdlib.h... yes
    >> checking for string.h... yes
    >> checking for memory.h... yes
    >> checking for strings.h... yes
    >> checking for inttypes.h... yes
    >> checking for stdint.h... yes
    >> checking for unistd.h... yes
    >> checking minix/config.h usability... no
    >> checking minix/config.h presence... no
    >> checking for minix/config.h... no
    >> checking for special C compiler options needed for large files... no
    >> checking for _FILE_OFFSET_BITS value needed for large files... no
    >> checking for long long... yes
    >> checking for off_t... yes
    >> checking for int... yes
    >> checking size of int... 4
    >> checking for short... yes
    >> checking size of short... 2
    >> checking for long... yes
    >> checking size of long... 8
    >> checking for long long... (cached) yes
    >> checking size of long long... 8
    >> checking for __int64... no
    >> checking size of __int64... 0
    >> checking for off_t... (cached) yes
    >> checking size of off_t... 8
    >> checking for void*... yes
    >> checking size of void*... 8
    >> checking for float... yes
    >> checking size of float... 4
    >> checking for double... yes
    >> checking size of double... 8
    >> checking for time_t... yes
    >> checking size of time_t... 8
    >> checking for pid_t... yes
    >> checking for gid_t... yes
    >> checking for uid_t... yes
    >> checking for prototypes... yes
    >> checking token paste string... ansi
    >> checking for variable length prototypes and stdarg.h... yes
    >> checking for noreturn function attribute... __attribute__ ((noreturn))
    >> x
    >> checking for noinline function attribute... __attribute__ ((noinline))
    >> x
    >> checking for RUBY_EXTERN... no
    >> checking whether sys_nerr is declared... yes
    >> checking for crypt in -lcrypt... yes
    >> checking for dlopen in -ldl... no
    >> checking for shl_load in -ldld... no
    >> checking for dirent.h that defines DIR... yes
    >> checking for library containing opendir... none required
    >> checking for ANSI C header files... (cached) yes
    >> checking for sys/wait.h that is POSIX.1 compatible... yes
    >> checking for stdlib.h... (cached) yes
    >> checking for string.h... (cached) yes
    >> checking for unistd.h... (cached) yes
    >> checking limits.h usability... yes
    >> checking limits.h presence... yes
    >> checking for limits.h... yes
    >> checking sys/file.h usability... yes
    >> checking sys/file.h presence... yes
    >> checking for sys/file.h... yes
    >> checking sys/ioctl.h usability... yes
    >> checking sys/ioctl.h presence... yes
    >> checking for sys/ioctl.h... yes
    >> checking sys/syscall.h usability... yes
    >> checking sys/syscall.h presence... yes
    >> checking for sys/syscall.h... yes
    >> checking fcntl.h usability... yes
    >> checking fcntl.h presence... yes
    >> checking for fcntl.h... yes
    >> checking sys/fcntl.h usability... yes
    >> checking sys/fcntl.h presence... yes
    >> checking for sys/fcntl.h... yes
    >> checking sys/select.h usability... yes
    >> checking sys/select.h presence... yes
    >> checking for sys/select.h... yes
    >> checking sys/time.h usability... yes
    >> checking sys/time.h presence... yes
    >> checking for sys/time.h... yes
    >> checking sys/times.h usability... yes
    >> checking sys/times.h presence... yes
    >> checking for sys/times.h... yes
    >> checking sys/param.h usability... yes
    >> checking sys/param.h presence... yes
    >> checking for sys/param.h... yes
    >> checking syscall.h usability... yes
    >> checking syscall.h presence... yes
    >> checking for syscall.h... yes
    >> checking pwd.h usability... yes
    >> checking pwd.h presence... yes
    >> checking for pwd.h... yes
    >> checking grp.h usability... yes
    >> checking grp.h presence... yes
    >> checking for grp.h... yes
    >> checking a.out.h usability... yes
    >> checking a.out.h presence... yes
    >> checking for a.out.h... yes
    >> checking utime.h usability... yes
    >> checking utime.h presence... yes
    >> checking for utime.h... yes
    >> checking for memory.h... (cached) yes
    >> checking direct.h usability... no
    >> checking direct.h presence... no
    >> checking for direct.h... no
    >> checking sys/resource.h usability... yes
    >> checking sys/resource.h presence... yes
    >> checking for sys/resource.h... yes
    >> checking sys/mkdev.h usability... no
    >> checking sys/mkdev.h presence... no
    >> checking for sys/mkdev.h... no
    >> checking sys/utime.h usability... no
    >> checking sys/utime.h presence... no
    >> checking for sys/utime.h... no
    >> checking netinet/in_systm.h usability... yes
    >> checking netinet/in_systm.h presence... yes
    >> checking for netinet/in_systm.h... yes
    >> checking float.h usability... yes
    >> checking float.h presence... yes
    >> checking for float.h... yes
    >> checking ieeefp.h usability... no
    >> checking ieeefp.h presence... no
    >> checking for ieeefp.h... no
    >> checking pthread.h usability... yes
    >> checking pthread.h presence... yes
    >> checking for pthread.h... yes
    >> checking ucontext.h usability... yes
    >> checking ucontext.h presence... yes
    >> checking for ucontext.h... yes
    >> checking intrinsics.h usability... no
    >> checking intrinsics.h presence... no
    >> checking for intrinsics.h... no
    >> checking for rlim_t... yes
    >> checking size of rlim_t... 8
    >> checking for size_t... yes
    >> checking for struct stat.st_blksize... yes
    >> checking for struct stat.st_blocks... yes
    >> checking for struct stat.st_rdev... yes
    >> checking for uid_t in sys/types.h... (cached) yes
    >> checking type of array argument to getgroups... gid_t
    >> checking return type of signal handlers... void
    >> checking for working alloca.h... yes
    >> checking for alloca... yes
    >> checking for working memcmp... yes
    >> checking for _LARGEFILE_SOURCE value needed for large files... 1
    >> checking for ftello... yes
    >> checking for dup2... yes
    >> checking for memmove... yes
    >> checking for strcasecmp... yes
    >> checking for strncasecmp... yes
    >> checking for strerror... yes
    >> checking for strftime... yes
    >> checking for strchr... yes
    >> checking for strstr... yes
    >> checking for strtoul... yes
    >> checking for crypt... yes
    >> checking for flock... yes
    >> checking for vsnprintf... yes
    >> checking for isnan... yes
    >> checking for finite... yes
    >> checking for isinf... yes
    >> checking for hypot... yes
    >> checking for acosh... yes
    >> checking for erf... yes
    >> checking for fmod... yes
    >> checking for killpg... yes
    >> checking for wait4... yes
    >> checking for waitpid... yes
    >> checking for syscall... yes
    >> checking for chroot... yes
    >> checking for fsync... yes
    >> checking for getcwd... yes
    >> checking for eaccess... no
    >> checking for truncate... yes
    >> checking for chsize... no
    >> checking for times... yes
    >> checking for utimes... yes
    >> checking for fcntl... yes
    >> checking for lockf... yes
    >> checking for lstat... yes
    >> checking for symlink... yes
    >> checking for link... yes
    >> checking for readlink... yes
    >> checking for setitimer... yes
    >> checking for setruid... no
    >> checking for seteuid... yes
    >> checking for setreuid... yes
    >> checking for setresuid... yes
    >> checking for setproctitle... no
    >> checking for setrgid... no
    >> checking for setegid... yes
    >> checking for setregid... yes
    >> checking for setresgid... yes
    >> checking for issetugid... no
    >> checking for pause... yes
    >> checking for lchown... yes
    >> checking for lchmod... no
    >> checking for getpgrp... yes
    >> checking for setpgrp... yes
    >> checking for getpgid... yes
    >> checking for setpgid... yes
    >> checking for initgroups... yes
    >> checking for getgroups... yes
    >> checking for setgroups... yes
    >> checking for getpriority... yes
    >> checking for getrlimit... yes
    >> checking for setrlimit... yes
    >> checking for sysconf... yes
    >> checking for dlopen... no
    >> checking for sigprocmask... yes
    >> checking for sigaction... yes
    >> checking for _setjmp... yes
    >> checking for setsid... yes
    >> checking for telldir... yes
    >> checking for seekdir... yes
    >> checking for fchmod... yes
    >> checking for mktime... yes
    >> checking for timegm... yes
    >> checking for cosh... yes
    >> checking for sinh... yes
    >> checking for tanh... yes
    >> checking for setuid... yes
    >> checking for setgid... yes
    >> checking for setenv... yes
    >> checking for unsetenv... yes
    >> checking whether struct tm is in sys/time.h or time.h... time.h
    >> checking for struct tm.tm_zone... yes
    >> checking for struct tm.tm_gmtoff... yes
    >> checking for external int daylight... yes
    >> checking for negative time_t for gmtime(3)... yes
    >> checking...
    >>
    >> read more »
    >>

    >
    > Bump - please - anybody? Help?
    >
    >
    >
    >

    The only obvious thing that I see is

    gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    against `a local symbol' can not be used when making a shared object;
    recompile with -fPIC

    It looks like some kind of incompatibility between a system library and bigdecimal. Try taking the '-fPIC' off of "CFLAGS" in your Makefiles and see if that helps.

    I do know that Ruby 1.8.6 compiles, etc., flawlessly on my Gentoo AMD64 system, but I have gcc 4.1.2, not 3.4.6. You could also try an upgrade to RHEL 5 to see if it goes away.
    M. Edward (Ed) Borasky, May 26, 2007
    #4
  5. Costas

    Costas Guest

    On May 25, 4:54 pm, "M. Edward (Ed) Borasky" <> wrote:
    > Costas wrote:
    > > On May 24, 1:11 pm, Costas <> wrote:

    >
    > >> I've been fiddling with installing each of the stable snapshot and the
    > >> 1.8.6 build on the Download Ruby page and it barfs on me.

    >
    > >> I'm running RHEL4 onx86_64( Red Hat Enterprise Linux AS release 4
    > >> (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    > >> 17:57:31 EDT 2006x86_64x86_64x86_64GNU/Linux

    >
    > >> I run the configure script, and then make.

    >
    > >> When building it, it seems to trip on bigdecimal:

    >
    > >> make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    > >> bigdecimal'
    > >> gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    > >> bigdecimal.c
    > >> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > >> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > >> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > >> against `a local symbol' can not be used when making a shared object;
    > >> recompile with -fPIC
    > >> /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    > >> libm.a: could not read symbols: Bad value
    > >> collect2: ld returned 1 exit status
    > >> make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    > >> make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    > >> bigdecimal'
    > >> make: *** [all] Error 1

    >
    > >> Here's the output of ./configure:

    >
    > >> checking build system type...x86_64-unknown-linux-gnu
    > >> checking host system type...x86_64-unknown-linux-gnu
    > >> checking target system type...x86_64-unknown-linux-gnu
    > >> checking for gcc... gcc
    > >> checking for C compiler default output file name... a.out
    > >> checking whether the C compiler works... yes
    > >> checking whether we are cross compiling... no
    > >> checking for suffix of executables...
    > >> checking for suffix of object files... o
    > >> checking whether we are using the GNU C compiler... yes
    > >> checking whether gcc accepts -g... yes
    > >> checking for gcc option to accept ISO C89... none needed
    > >> checking how to run the C preprocessor... gcc -E
    > >> checking for grep that handles long lines and -e... /bin/grep
    > >> checking for egrep... /bin/grep -E
    > >> checking whether gcc needs -traditional... no
    > >> checking whether the linker is GNU ld... yes
    > >> checking whether gcc -E accepts -o... yes
    > >> checking for bison... bison -y
    > >> checking for ranlib... ranlib
    > >> checking for ar... ar
    > >> checking for as... as
    > >> checking whether ln -s works... yes
    > >> checking whether make sets $(MAKE)... yes
    > >> checking for a BSD-compatible install... /usr/bin/install -c
    > >> checking for AIX... no
    > >> checking for ANSI C header files... yes
    > >> checking for sys/types.h... yes
    > >> checking for sys/stat.h... yes
    > >> checking for stdlib.h... yes
    > >> checking for string.h... yes
    > >> checking for memory.h... yes
    > >> checking for strings.h... yes
    > >> checking for inttypes.h... yes
    > >> checking for stdint.h... yes
    > >> checking for unistd.h... yes
    > >> checking minix/config.h usability... no
    > >> checking minix/config.h presence... no
    > >> checking for minix/config.h... no
    > >> checking for special C compiler options needed for large files... no
    > >> checking for _FILE_OFFSET_BITS value needed for large files... no
    > >> checking for long long... yes
    > >> checking for off_t... yes
    > >> checking for int... yes
    > >> checking size of int... 4
    > >> checking for short... yes
    > >> checking size of short... 2
    > >> checking for long... yes
    > >> checking size of long... 8
    > >> checking for long long... (cached) yes
    > >> checking size of long long... 8
    > >> checking for __int64... no
    > >> checking size of __int64... 0
    > >> checking for off_t... (cached) yes
    > >> checking size of off_t... 8
    > >> checking for void*... yes
    > >> checking size of void*... 8
    > >> checking for float... yes
    > >> checking size of float... 4
    > >> checking for double... yes
    > >> checking size of double... 8
    > >> checking for time_t... yes
    > >> checking size of time_t... 8
    > >> checking for pid_t... yes
    > >> checking for gid_t... yes
    > >> checking for uid_t... yes
    > >> checking for prototypes... yes
    > >> checking token paste string... ansi
    > >> checking for variable length prototypes and stdarg.h... yes
    > >> checking for noreturn function attribute... __attribute__ ((noreturn))
    > >> x
    > >> checking for noinline function attribute... __attribute__ ((noinline))
    > >> x
    > >> checking for RUBY_EXTERN... no
    > >> checking whether sys_nerr is declared... yes
    > >> checking for crypt in -lcrypt... yes
    > >> checking for dlopen in -ldl... no
    > >> checking for shl_load in -ldld... no
    > >> checking for dirent.h that defines DIR... yes
    > >> checking for library containing opendir... none required
    > >> checking for ANSI C header files... (cached) yes
    > >> checking for sys/wait.h that is POSIX.1 compatible... yes
    > >> checking for stdlib.h... (cached) yes
    > >> checking for string.h... (cached) yes
    > >> checking for unistd.h... (cached) yes
    > >> checking limits.h usability... yes
    > >> checking limits.h presence... yes
    > >> checking for limits.h... yes
    > >> checking sys/file.h usability... yes
    > >> checking sys/file.h presence... yes
    > >> checking for sys/file.h... yes
    > >> checking sys/ioctl.h usability... yes
    > >> checking sys/ioctl.h presence... yes
    > >> checking for sys/ioctl.h... yes
    > >> checking sys/syscall.h usability... yes
    > >> checking sys/syscall.h presence... yes
    > >> checking for sys/syscall.h... yes
    > >> checking fcntl.h usability... yes
    > >> checking fcntl.h presence... yes
    > >> checking for fcntl.h... yes
    > >> checking sys/fcntl.h usability... yes
    > >> checking sys/fcntl.h presence... yes
    > >> checking for sys/fcntl.h... yes
    > >> checking sys/select.h usability... yes
    > >> checking sys/select.h presence... yes
    > >> checking for sys/select.h... yes
    > >> checking sys/time.h usability... yes
    > >> checking sys/time.h presence... yes
    > >> checking for sys/time.h... yes
    > >> checking sys/times.h usability... yes
    > >> checking sys/times.h presence... yes
    > >> checking for sys/times.h... yes
    > >> checking sys/param.h usability... yes
    > >> checking sys/param.h presence... yes
    > >> checking for sys/param.h... yes
    > >> checking syscall.h usability... yes
    > >> checking syscall.h presence... yes
    > >> checking for syscall.h... yes
    > >> checking pwd.h usability... yes
    > >> checking pwd.h presence... yes
    > >> checking for pwd.h... yes
    > >> checking grp.h usability... yes
    > >> checking grp.h presence... yes
    > >> checking for grp.h... yes
    > >> checking a.out.h usability... yes
    > >> checking a.out.h presence... yes
    > >> checking for a.out.h... yes
    > >> checking utime.h usability... yes
    > >> checking utime.h presence... yes
    > >> checking for utime.h... yes
    > >> checking for memory.h... (cached) yes
    > >> checking direct.h usability... no
    > >> checking direct.h presence... no
    > >> checking for direct.h... no
    > >> checking sys/resource.h usability... yes
    > >> checking sys/resource.h presence... yes
    > >> checking for sys/resource.h... yes
    > >> checking sys/mkdev.h usability... no
    > >> checking sys/mkdev.h presence... no
    > >> checking for sys/mkdev.h... no
    > >> checking sys/utime.h usability... no
    > >> checking sys/utime.h presence... no
    > >> checking for sys/utime.h... no
    > >> checking netinet/in_systm.h usability... yes
    > >> checking netinet/in_systm.h presence... yes
    > >> checking for netinet/in_systm.h... yes
    > >> checking float.h usability... yes
    > >> checking float.h presence... yes
    > >> checking for float.h... yes
    > >> checking ieeefp.h usability... no
    > >> checking ieeefp.h presence... no
    > >> checking for ieeefp.h... no
    > >> checking pthread.h usability... yes
    > >> checking pthread.h presence... yes
    > >> checking for pthread.h... yes
    > >> checking ucontext.h usability... yes
    > >> checking ucontext.h presence... yes
    > >> checking for ucontext.h... yes
    > >> checking intrinsics.h usability... no
    > >> checking intrinsics.h presence... no
    > >> checking for intrinsics.h... no
    > >> checking for rlim_t... yes
    > >> checking size of rlim_t... 8
    > >> checking for size_t... yes
    > >> checking for struct stat.st_blksize... yes
    > >> checking for struct stat.st_blocks... yes
    > >> checking for struct stat.st_rdev... yes
    > >> checking for uid_t in sys/types.h... (cached) yes
    > >> checking type of array argument to getgroups... gid_t
    > >> checking return type of signal handlers... void
    > >> checking for working alloca.h... yes
    > >> checking for alloca... yes
    > >> checking for working memcmp... yes
    > >> checking for _LARGEFILE_SOURCE value needed for large files... 1
    > >> checking for ftello... yes
    > >> checking for dup2... yes
    > >> checking for memmove... yes
    > >> checking for strcasecmp... yes
    > >> checking for strncasecmp... yes
    > >> checking for strerror... yes
    > >> checking for strftime... yes
    > >> checking for strchr... yes
    > >> checking for strstr... yes
    > >> checking for strtoul... yes
    > >> checking for crypt... yes
    > >> checking for flock... yes
    > >> checking for vsnprintf... yes
    > >> checking for isnan... yes
    > >> checking for finite... yes
    > >> checking for isinf... yes
    > >> checking for hypot... yes
    > >> checking for acosh... yes
    > >> checking for erf... yes
    > >> checking for fmod... yes
    > >> checking for killpg... yes
    > >> checking for wait4... yes
    > >> checking for waitpid... yes
    > >> checking for syscall... yes
    > >> checking for chroot... yes
    > >> checking for fsync... yes
    > >> checking for getcwd... yes
    > >> checking for eaccess... no
    > >> checking for truncate... yes
    > >> checking for chsize... no
    > >> checking for times... yes
    > >> checking for utimes... yes
    > >> checking for fcntl... yes
    > >> checking for lockf... yes
    > >> checking for lstat... yes
    > >> checking for symlink... yes
    > >> checking for link... yes
    > >> checking for readlink... yes
    > >> checking for setitimer... yes
    > >> checking for setruid... no
    > >> checking for seteuid... yes
    > >> checking for setreuid... yes
    > >> checking for setresuid... yes
    > >> checking for setproctitle... no
    > >> checking for setrgid... no
    > >> checking for setegid... yes
    > >> checking for setregid... yes
    > >> checking for setresgid... yes
    > >> checking for issetugid... no
    > >> checking for pause... yes
    > >> checking for lchown... yes
    > >> checking for lchmod... no
    > >> checking for getpgrp... yes
    > >> checking for setpgrp... yes
    > >> checking for getpgid... yes
    > >> checking for setpgid... yes
    > >> checking for initgroups... yes
    > >> checking for getgroups... yes
    > >> checking for setgroups... yes
    > >> checking for getpriority... yes
    > >> checking for getrlimit... yes
    > >> checking for setrlimit... yes
    > >> checking for sysconf... yes
    > >> checking for dlopen... no
    > >> checking for sigprocmask... yes
    > >> checking for sigaction... yes
    > >> checking for _setjmp... yes
    > >> checking for setsid... yes
    > >> checking for telldir... yes
    > >> checking for seekdir... yes
    > >> checking for fchmod... yes
    > >> checking for mktime... yes
    > >> checking for timegm... yes
    > >> checking for cosh... yes
    > >> checking for sinh... yes
    > >> checking for tanh... yes
    > >> checking for setuid... yes
    > >> checking for setgid... yes
    > >> checking for setenv... yes
    > >> checking for unsetenv... yes
    > >> checking whether struct tm is in sys/time.h or time.h... time.h
    > >> checking for struct tm.tm_zone... yes
    > >> checking for struct tm.tm_gmtoff... yes
    > >> checking for external int daylight... yes
    > >> checking for negative time_t for gmtime(3)... yes
    > >> checking...

    >
    > >> read more »

    >
    > > Bump - please - anybody? Help?

    >
    > The only obvious thing that I see is
    >
    > gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > against `a local symbol' can not be used when making a shared object;
    > recompile with -fPIC
    >
    > It looks like some kind of incompatibility between a system library and bigdecimal. Try taking the '-fPIC' off of "CFLAGS" in your Makefiles and seeif that helps.
    >
    > I do know that Ruby 1.8.6 compiles, etc., flawlessly on my Gentoo AMD64 system, but I have gcc 4.1.2, not 3.4.6. You could also try an upgrade to RHEL 5 to see if it goes away.


    Thanks for the info - actually that flag though wasn't on. It's
    weird because it compiles fine on an older RHEL4 box but not a newer
    one... It's unusual that's the case.
    Costas, May 28, 2007
    #5
  6. Costas wrote:
    > On May 25, 4:54 pm, "M. Edward (Ed) Borasky" <> wrote:
    >
    >> Costas wrote:
    >>
    >>> On May 24, 1:11 pm, Costas <> wrote:
    >>>
    >>>> I've been fiddling with installing each of the stable snapshot and the
    >>>> 1.8.6 build on the Download Ruby page and it barfs on me.
    >>>>
    >>>> I'm running RHEL4 onx86_64( Red Hat Enterprise Linux AS release 4
    >>>> (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    >>>> 17:57:31 EDT 2006x86_64x86_64x86_64GNU/Linux
    >>>>
    >>>> I run the configure script, and then make.
    >>>>
    >>>> When building it, it seems to trip on bigdecimal:
    >>>>
    >>>> make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    >>>> bigdecimal'
    >>>> gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    >>>> bigdecimal.c
    >>>> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    >>>> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    >>>> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    >>>> against `a local symbol' can not be used when making a shared object;
    >>>> recompile with -fPIC
    >>>> /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    >>>> libm.a: could not read symbols: Bad value
    >>>> collect2: ld returned 1 exit status
    >>>> make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    >>>> make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    >>>> bigdecimal'
    >>>> make: *** [all] Error 1
    >>>>
    >>>> Here's the output of ./configure:
    >>>>
    >>>> checking build system type...x86_64-unknown-linux-gnu
    >>>> checking host system type...x86_64-unknown-linux-gnu
    >>>> checking target system type...x86_64-unknown-linux-gnu
    >>>> checking for gcc... gcc
    >>>> checking for C compiler default output file name... a.out
    >>>> checking whether the C compiler works... yes
    >>>> checking whether we are cross compiling... no
    >>>> checking for suffix of executables...
    >>>> checking for suffix of object files... o
    >>>> checking whether we are using the GNU C compiler... yes
    >>>> checking whether gcc accepts -g... yes
    >>>> checking for gcc option to accept ISO C89... none needed
    >>>> checking how to run the C preprocessor... gcc -E
    >>>> checking for grep that handles long lines and -e... /bin/grep
    >>>> checking for egrep... /bin/grep -E
    >>>> checking whether gcc needs -traditional... no
    >>>> checking whether the linker is GNU ld... yes
    >>>> checking whether gcc -E accepts -o... yes
    >>>> checking for bison... bison -y
    >>>> checking for ranlib... ranlib
    >>>> checking for ar... ar
    >>>> checking for as... as
    >>>> checking whether ln -s works... yes
    >>>> checking whether make sets $(MAKE)... yes
    >>>> checking for a BSD-compatible install... /usr/bin/install -c
    >>>> checking for AIX... no
    >>>> checking for ANSI C header files... yes
    >>>> checking for sys/types.h... yes
    >>>> checking for sys/stat.h... yes
    >>>> checking for stdlib.h... yes
    >>>> checking for string.h... yes
    >>>> checking for memory.h... yes
    >>>> checking for strings.h... yes
    >>>> checking for inttypes.h... yes
    >>>> checking for stdint.h... yes
    >>>> checking for unistd.h... yes
    >>>> checking minix/config.h usability... no
    >>>> checking minix/config.h presence... no
    >>>> checking for minix/config.h... no
    >>>> checking for special C compiler options needed for large files... no
    >>>> checking for _FILE_OFFSET_BITS value needed for large files... no
    >>>> checking for long long... yes
    >>>> checking for off_t... yes
    >>>> checking for int... yes
    >>>> checking size of int... 4
    >>>> checking for short... yes
    >>>> checking size of short... 2
    >>>> checking for long... yes
    >>>> checking size of long... 8
    >>>> checking for long long... (cached) yes
    >>>> checking size of long long... 8
    >>>> checking for __int64... no
    >>>> checking size of __int64... 0
    >>>> checking for off_t... (cached) yes
    >>>> checking size of off_t... 8
    >>>> checking for void*... yes
    >>>> checking size of void*... 8
    >>>> checking for float... yes
    >>>> checking size of float... 4
    >>>> checking for double... yes
    >>>> checking size of double... 8
    >>>> checking for time_t... yes
    >>>> checking size of time_t... 8
    >>>> checking for pid_t... yes
    >>>> checking for gid_t... yes
    >>>> checking for uid_t... yes
    >>>> checking for prototypes... yes
    >>>> checking token paste string... ansi
    >>>> checking for variable length prototypes and stdarg.h... yes
    >>>> checking for noreturn function attribute... __attribute__ ((noreturn))
    >>>> x
    >>>> checking for noinline function attribute... __attribute__ ((noinline))
    >>>> x
    >>>> checking for RUBY_EXTERN... no
    >>>> checking whether sys_nerr is declared... yes
    >>>> checking for crypt in -lcrypt... yes
    >>>> checking for dlopen in -ldl... no
    >>>> checking for shl_load in -ldld... no
    >>>> checking for dirent.h that defines DIR... yes
    >>>> checking for library containing opendir... none required
    >>>> checking for ANSI C header files... (cached) yes
    >>>> checking for sys/wait.h that is POSIX.1 compatible... yes
    >>>> checking for stdlib.h... (cached) yes
    >>>> checking for string.h... (cached) yes
    >>>> checking for unistd.h... (cached) yes
    >>>> checking limits.h usability... yes
    >>>> checking limits.h presence... yes
    >>>> checking for limits.h... yes
    >>>> checking sys/file.h usability... yes
    >>>> checking sys/file.h presence... yes
    >>>> checking for sys/file.h... yes
    >>>> checking sys/ioctl.h usability... yes
    >>>> checking sys/ioctl.h presence... yes
    >>>> checking for sys/ioctl.h... yes
    >>>> checking sys/syscall.h usability... yes
    >>>> checking sys/syscall.h presence... yes
    >>>> checking for sys/syscall.h... yes
    >>>> checking fcntl.h usability... yes
    >>>> checking fcntl.h presence... yes
    >>>> checking for fcntl.h... yes
    >>>> checking sys/fcntl.h usability... yes
    >>>> checking sys/fcntl.h presence... yes
    >>>> checking for sys/fcntl.h... yes
    >>>> checking sys/select.h usability... yes
    >>>> checking sys/select.h presence... yes
    >>>> checking for sys/select.h... yes
    >>>> checking sys/time.h usability... yes
    >>>> checking sys/time.h presence... yes
    >>>> checking for sys/time.h... yes
    >>>> checking sys/times.h usability... yes
    >>>> checking sys/times.h presence... yes
    >>>> checking for sys/times.h... yes
    >>>> checking sys/param.h usability... yes
    >>>> checking sys/param.h presence... yes
    >>>> checking for sys/param.h... yes
    >>>> checking syscall.h usability... yes
    >>>> checking syscall.h presence... yes
    >>>> checking for syscall.h... yes
    >>>> checking pwd.h usability... yes
    >>>> checking pwd.h presence... yes
    >>>> checking for pwd.h... yes
    >>>> checking grp.h usability... yes
    >>>> checking grp.h presence... yes
    >>>> checking for grp.h... yes
    >>>> checking a.out.h usability... yes
    >>>> checking a.out.h presence... yes
    >>>> checking for a.out.h... yes
    >>>> checking utime.h usability... yes
    >>>> checking utime.h presence... yes
    >>>> checking for utime.h... yes
    >>>> checking for memory.h... (cached) yes
    >>>> checking direct.h usability... no
    >>>> checking direct.h presence... no
    >>>> checking for direct.h... no
    >>>> checking sys/resource.h usability... yes
    >>>> checking sys/resource.h presence... yes
    >>>> checking for sys/resource.h... yes
    >>>> checking sys/mkdev.h usability... no
    >>>> checking sys/mkdev.h presence... no
    >>>> checking for sys/mkdev.h... no
    >>>> checking sys/utime.h usability... no
    >>>> checking sys/utime.h presence... no
    >>>> checking for sys/utime.h... no
    >>>> checking netinet/in_systm.h usability... yes
    >>>> checking netinet/in_systm.h presence... yes
    >>>> checking for netinet/in_systm.h... yes
    >>>> checking float.h usability... yes
    >>>> checking float.h presence... yes
    >>>> checking for float.h... yes
    >>>> checking ieeefp.h usability... no
    >>>> checking ieeefp.h presence... no
    >>>> checking for ieeefp.h... no
    >>>> checking pthread.h usability... yes
    >>>> checking pthread.h presence... yes
    >>>> checking for pthread.h... yes
    >>>> checking ucontext.h usability... yes
    >>>> checking ucontext.h presence... yes
    >>>> checking for ucontext.h... yes
    >>>> checking intrinsics.h usability... no
    >>>> checking intrinsics.h presence... no
    >>>> checking for intrinsics.h... no
    >>>> checking for rlim_t... yes
    >>>> checking size of rlim_t... 8
    >>>> checking for size_t... yes
    >>>> checking for struct stat.st_blksize... yes
    >>>> checking for struct stat.st_blocks... yes
    >>>> checking for struct stat.st_rdev... yes
    >>>> checking for uid_t in sys/types.h... (cached) yes
    >>>> checking type of array argument to getgroups... gid_t
    >>>> checking return type of signal handlers... void
    >>>> checking for working alloca.h... yes
    >>>> checking for alloca... yes
    >>>> checking for working memcmp... yes
    >>>> checking for _LARGEFILE_SOURCE value needed for large files... 1
    >>>> checking for ftello... yes
    >>>> checking for dup2... yes
    >>>> checking for memmove... yes
    >>>> checking for strcasecmp... yes
    >>>> checking for strncasecmp... yes
    >>>> checking for strerror... yes
    >>>> checking for strftime... yes
    >>>> checking for strchr... yes
    >>>> checking for strstr... yes
    >>>> checking for strtoul... yes
    >>>> checking for crypt... yes
    >>>> checking for flock... yes
    >>>> checking for vsnprintf... yes
    >>>> checking for isnan... yes
    >>>> checking for finite... yes
    >>>> checking for isinf... yes
    >>>> checking for hypot... yes
    >>>> checking for acosh... yes
    >>>> checking for erf... yes
    >>>> checking for fmod... yes
    >>>> checking for killpg... yes
    >>>> checking for wait4... yes
    >>>> checking for waitpid... yes
    >>>> checking for syscall... yes
    >>>> checking for chroot... yes
    >>>> checking for fsync... yes
    >>>> checking for getcwd... yes
    >>>> checking for eaccess... no
    >>>> checking for truncate... yes
    >>>> checking for chsize... no
    >>>> checking for times... yes
    >>>> checking for utimes... yes
    >>>> checking for fcntl... yes
    >>>> checking for lockf... yes
    >>>> checking for lstat... yes
    >>>> checking for symlink... yes
    >>>> checking for link... yes
    >>>> checking for readlink... yes
    >>>> checking for setitimer... yes
    >>>> checking for setruid... no
    >>>> checking for seteuid... yes
    >>>> checking for setreuid... yes
    >>>> checking for setresuid... yes
    >>>> checking for setproctitle... no
    >>>> checking for setrgid... no
    >>>> checking for setegid... yes
    >>>> checking for setregid... yes
    >>>> checking for setresgid... yes
    >>>> checking for issetugid... no
    >>>> checking for pause... yes
    >>>> checking for lchown... yes
    >>>> checking for lchmod... no
    >>>> checking for getpgrp... yes
    >>>> checking for setpgrp... yes
    >>>> checking for getpgid... yes
    >>>> checking for setpgid... yes
    >>>> checking for initgroups... yes
    >>>> checking for getgroups... yes
    >>>> checking for setgroups... yes
    >>>> checking for getpriority... yes
    >>>> checking for getrlimit... yes
    >>>> checking for setrlimit... yes
    >>>> checking for sysconf... yes
    >>>> checking for dlopen... no
    >>>> checking for sigprocmask... yes
    >>>> checking for sigaction... yes
    >>>> checking for _setjmp... yes
    >>>> checking for setsid... yes
    >>>> checking for telldir... yes
    >>>> checking for seekdir... yes
    >>>> checking for fchmod... yes
    >>>> checking for mktime... yes
    >>>> checking for timegm... yes
    >>>> checking for cosh... yes
    >>>> checking for sinh... yes
    >>>> checking for tanh... yes
    >>>> checking for setuid... yes
    >>>> checking for setgid... yes
    >>>> checking for setenv... yes
    >>>> checking for unsetenv... yes
    >>>> checking whether struct tm is in sys/time.h or time.h... time.h
    >>>> checking for struct tm.tm_zone... yes
    >>>> checking for struct tm.tm_gmtoff... yes
    >>>> checking for external int daylight... yes
    >>>> checking for negative time_t for gmtime(3)... yes
    >>>> checking...
    >>>>
    >>>> read more »
    >>>>
    >>> Bump - please - anybody? Help?
    >>>

    >> The only obvious thing that I see is
    >>
    >> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    >> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    >> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    >> against `a local symbol' can not be used when making a shared object;
    >> recompile with -fPIC
    >>
    >> It looks like some kind of incompatibility between a system library and bigdecimal. Try taking the '-fPIC' off of "CFLAGS" in your Makefiles and see if that helps.
    >>
    >> I do know that Ruby 1.8.6 compiles, etc., flawlessly on my Gentoo AMD64 system, but I have gcc 4.1.2, not 3.4.6. You could also try an upgrade to RHEL 5 to see if it goes away.
    >>

    >
    > Thanks for the info - actually that flag though wasn't on. It's
    > weird because it compiles fine on an older RHEL4 box but not a newer
    > one... It's unusual that's the case.
    >

    Are you saying that it works on one RHEL4/x86_64 box and not the other,
    or that it works on an RHEL4/x86(32) box but not on an RHEL/x86_64 box?

    I'll be loading CentOS 5 on an x64 system later this week, and it comes
    with Ruby 1.8.5, so I know at least that works. You could try getting
    the source RPMs for Ruby and its friends from the RHEL 5 source
    repository and doing an "rpmbuild" ... that would tell you if there are
    special hacks you need to do to bring Ruby up on your box.
    >
    >
    M. Edward (Ed) Borasky, May 28, 2007
    #6
  7. Costas

    Costas Guest

    On May 28, 11:05 am, "M. Edward (Ed) Borasky" <>
    wrote:
    > Costas wrote:
    > > On May 25, 4:54 pm, "M. Edward (Ed) Borasky" <> wrote:

    >
    > >> Costas wrote:

    >
    > >>> On May 24, 1:11 pm, Costas <> wrote:

    >
    > >>>> I've been fiddling with installing each of the stable snapshot and the
    > >>>> 1.8.6 build on the Download Ruby page and it barfs on me.

    >
    > >>>> I'm running RHEL4 onx86_64( Red Hat Enterprise Linux AS release 4
    > >>>> (Nahant Update 4) ) - Linux 2.6.9-42.0.2.ELsmp #1 SMP Thu Aug 17
    > >>>> 17:57:31 EDT 2006x86_64x86_64x86_64GNU/Linux

    >
    > >>>> I run the configure script, and then make.

    >
    > >>>> When building it, it seems to trip on bigdecimal:

    >
    > >>>> make[1]: Entering directory `/data/db2home/dw/ruby-1.8.6/ext/
    > >>>> bigdecimal'
    > >>>> gcc -I. -I../.. -I../../. -I../.././ext/bigdecimal -fPIC -g -O2 -c
    > >>>> bigdecimal.c
    > >>>> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > >>>> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > >>>> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > >>>> against `a local symbol' can not be used when making a shared object;
    > >>>> recompile with -fPIC
    > >>>> /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/
    > >>>> libm.a: could not read symbols: Bad value
    > >>>> collect2: ld returned 1 exit status
    > >>>> make[1]: *** [../../.ext/x86_64-linux/bigdecimal.so] Error 1
    > >>>> make[1]: Leaving directory `/data/db2home/dw/ruby-1.8.6/ext/
    > >>>> bigdecimal'
    > >>>> make: *** [all] Error 1

    >
    > >>>> Here's the output of ./configure:

    >
    > >>>> checking build system type...x86_64-unknown-linux-gnu
    > >>>> checking host system type...x86_64-unknown-linux-gnu
    > >>>> checking target system type...x86_64-unknown-linux-gnu
    > >>>> checking for gcc... gcc
    > >>>> checking for C compiler default output file name... a.out
    > >>>> checking whether the C compiler works... yes
    > >>>> checking whether we are cross compiling... no
    > >>>> checking for suffix of executables...
    > >>>> checking for suffix of object files... o
    > >>>> checking whether we are using the GNU C compiler... yes
    > >>>> checking whether gcc accepts -g... yes
    > >>>> checking for gcc option to accept ISO C89... none needed
    > >>>> checking how to run the C preprocessor... gcc -E
    > >>>> checking for grep that handles long lines and -e... /bin/grep
    > >>>> checking for egrep... /bin/grep -E
    > >>>> checking whether gcc needs -traditional... no
    > >>>> checking whether the linker is GNU ld... yes
    > >>>> checking whether gcc -E accepts -o... yes
    > >>>> checking for bison... bison -y
    > >>>> checking for ranlib... ranlib
    > >>>> checking for ar... ar
    > >>>> checking for as... as
    > >>>> checking whether ln -s works... yes
    > >>>> checking whether make sets $(MAKE)... yes
    > >>>> checking for a BSD-compatible install... /usr/bin/install -c
    > >>>> checking for AIX... no
    > >>>> checking for ANSI C header files... yes
    > >>>> checking for sys/types.h... yes
    > >>>> checking for sys/stat.h... yes
    > >>>> checking for stdlib.h... yes
    > >>>> checking for string.h... yes
    > >>>> checking for memory.h... yes
    > >>>> checking for strings.h... yes
    > >>>> checking for inttypes.h... yes
    > >>>> checking for stdint.h... yes
    > >>>> checking for unistd.h... yes
    > >>>> checking minix/config.h usability... no
    > >>>> checking minix/config.h presence... no
    > >>>> checking for minix/config.h... no
    > >>>> checking for special C compiler options needed for large files... no
    > >>>> checking for _FILE_OFFSET_BITS value needed for large files... no
    > >>>> checking for long long... yes
    > >>>> checking for off_t... yes
    > >>>> checking for int... yes
    > >>>> checking size of int... 4
    > >>>> checking for short... yes
    > >>>> checking size of short... 2
    > >>>> checking for long... yes
    > >>>> checking size of long... 8
    > >>>> checking for long long... (cached) yes
    > >>>> checking size of long long... 8
    > >>>> checking for __int64... no
    > >>>> checking size of __int64... 0
    > >>>> checking for off_t... (cached) yes
    > >>>> checking size of off_t... 8
    > >>>> checking for void*... yes
    > >>>> checking size of void*... 8
    > >>>> checking for float... yes
    > >>>> checking size of float... 4
    > >>>> checking for double... yes
    > >>>> checking size of double... 8
    > >>>> checking for time_t... yes
    > >>>> checking size of time_t... 8
    > >>>> checking for pid_t... yes
    > >>>> checking for gid_t... yes
    > >>>> checking for uid_t... yes
    > >>>> checking for prototypes... yes
    > >>>> checking token paste string... ansi
    > >>>> checking for variable length prototypes and stdarg.h... yes
    > >>>> checking for noreturn function attribute... __attribute__ ((noreturn))
    > >>>> x
    > >>>> checking for noinline function attribute... __attribute__ ((noinline))
    > >>>> x
    > >>>> checking for RUBY_EXTERN... no
    > >>>> checking whether sys_nerr is declared... yes
    > >>>> checking for crypt in -lcrypt... yes
    > >>>> checking for dlopen in -ldl... no
    > >>>> checking for shl_load in -ldld... no
    > >>>> checking for dirent.h that defines DIR... yes
    > >>>> checking for library containing opendir... none required
    > >>>> checking for ANSI C header files... (cached) yes
    > >>>> checking for sys/wait.h that is POSIX.1 compatible... yes
    > >>>> checking for stdlib.h... (cached) yes
    > >>>> checking for string.h... (cached) yes
    > >>>> checking for unistd.h... (cached) yes
    > >>>> checking limits.h usability... yes
    > >>>> checking limits.h presence... yes
    > >>>> checking for limits.h... yes
    > >>>> checking sys/file.h usability... yes
    > >>>> checking sys/file.h presence... yes
    > >>>> checking for sys/file.h... yes
    > >>>> checking sys/ioctl.h usability... yes
    > >>>> checking sys/ioctl.h presence... yes
    > >>>> checking for sys/ioctl.h... yes
    > >>>> checking sys/syscall.h usability... yes
    > >>>> checking sys/syscall.h presence... yes
    > >>>> checking for sys/syscall.h... yes
    > >>>> checking fcntl.h usability... yes
    > >>>> checking fcntl.h presence... yes
    > >>>> checking for fcntl.h... yes
    > >>>> checking sys/fcntl.h usability... yes
    > >>>> checking sys/fcntl.h presence... yes
    > >>>> checking for sys/fcntl.h... yes
    > >>>> checking sys/select.h usability... yes
    > >>>> checking sys/select.h presence... yes
    > >>>> checking for sys/select.h... yes
    > >>>> checking sys/time.h usability... yes
    > >>>> checking sys/time.h presence... yes
    > >>>> checking for sys/time.h... yes
    > >>>> checking sys/times.h usability... yes
    > >>>> checking sys/times.h presence... yes
    > >>>> checking for sys/times.h... yes
    > >>>> checking sys/param.h usability... yes
    > >>>> checking sys/param.h presence... yes
    > >>>> checking for sys/param.h... yes
    > >>>> checking syscall.h usability... yes
    > >>>> checking syscall.h presence... yes
    > >>>> checking for syscall.h... yes
    > >>>> checking pwd.h usability... yes
    > >>>> checking pwd.h presence... yes
    > >>>> checking for pwd.h... yes
    > >>>> checking grp.h usability... yes
    > >>>> checking grp.h presence... yes
    > >>>> checking for grp.h... yes
    > >>>> checking a.out.h usability... yes
    > >>>> checking a.out.h presence... yes
    > >>>> checking for a.out.h... yes
    > >>>> checking utime.h usability... yes
    > >>>> checking utime.h presence... yes
    > >>>> checking for utime.h... yes
    > >>>> checking for memory.h... (cached) yes
    > >>>> checking direct.h usability... no
    > >>>> checking direct.h presence... no
    > >>>> checking for direct.h... no
    > >>>> checking sys/resource.h usability... yes
    > >>>> checking sys/resource.h presence... yes
    > >>>> checking for sys/resource.h... yes
    > >>>> checking sys/mkdev.h usability... no
    > >>>> checking sys/mkdev.h presence... no
    > >>>> checking for sys/mkdev.h... no
    > >>>> checking sys/utime.h usability... no
    > >>>> checking sys/utime.h presence... no
    > >>>> checking for sys/utime.h... no
    > >>>> checking netinet/in_systm.h usability... yes
    > >>>> checking netinet/in_systm.h presence... yes
    > >>>> checking for netinet/in_systm.h... yes
    > >>>> checking float.h usability... yes
    > >>>> checking float.h presence... yes
    > >>>> checking for float.h... yes
    > >>>> checking ieeefp.h usability... no
    > >>>> checking ieeefp.h presence... no
    > >>>> checking for ieeefp.h... no
    > >>>> checking pthread.h usability... yes
    > >>>> checking pthread.h presence... yes
    > >>>> checking for pthread.h... yes
    > >>>> checking ucontext.h usability... yes
    > >>>> checking ucontext.h presence... yes
    > >>>> checking for ucontext.h... yes
    > >>>> checking intrinsics.h usability... no
    > >>>> checking intrinsics.h presence... no
    > >>>> checking for intrinsics.h... no
    > >>>> checking for rlim_t... yes
    > >>>> checking size of rlim_t... 8
    > >>>> checking for size_t... yes
    > >>>> checking for struct stat.st_blksize... yes
    > >>>> checking for struct stat.st_blocks... yes
    > >>>> checking for struct stat.st_rdev... yes
    > >>>> checking for uid_t in sys/types.h... (cached) yes
    > >>>> checking type of array argument to getgroups... gid_t
    > >>>> checking return type of signal handlers... void
    > >>>> checking for working alloca.h... yes
    > >>>> checking for alloca... yes
    > >>>> checking for working memcmp... yes
    > >>>> checking for _LARGEFILE_SOURCE value needed for large files... 1
    > >>>> checking for ftello... yes
    > >>>> checking for dup2... yes
    > >>>> checking for memmove... yes
    > >>>> checking for strcasecmp... yes
    > >>>> checking for strncasecmp... yes
    > >>>> checking for strerror... yes
    > >>>> checking for strftime... yes
    > >>>> checking for strchr... yes
    > >>>> checking for strstr... yes
    > >>>> checking for strtoul... yes
    > >>>> checking for crypt... yes
    > >>>> checking for flock... yes
    > >>>> checking for vsnprintf... yes
    > >>>> checking for isnan... yes
    > >>>> checking for finite... yes
    > >>>> checking for isinf... yes
    > >>>> checking for hypot... yes
    > >>>> checking for acosh... yes
    > >>>> checking for erf... yes
    > >>>> checking for fmod... yes
    > >>>> checking for killpg... yes
    > >>>> checking for wait4... yes
    > >>>> checking for waitpid... yes
    > >>>> checking for syscall... yes
    > >>>> checking for chroot... yes
    > >>>> checking for fsync... yes
    > >>>> checking for getcwd... yes
    > >>>> checking for eaccess... no
    > >>>> checking for truncate... yes
    > >>>> checking for chsize... no
    > >>>> checking for times... yes
    > >>>> checking for utimes... yes
    > >>>> checking for fcntl... yes
    > >>>> checking for lockf... yes
    > >>>> checking for lstat... yes
    > >>>> checking for symlink... yes
    > >>>> checking for link... yes
    > >>>> checking for readlink... yes
    > >>>> checking for setitimer... yes
    > >>>> checking for setruid... no
    > >>>> checking for seteuid... yes
    > >>>> checking for setreuid... yes
    > >>>> checking for setresuid... yes
    > >>>> checking for setproctitle... no
    > >>>> checking for setrgid... no
    > >>>> checking for setegid... yes
    > >>>> checking for setregid... yes
    > >>>> checking for setresgid... yes
    > >>>> checking for issetugid... no
    > >>>> checking for pause... yes
    > >>>> checking for lchown... yes
    > >>>> checking for lchmod... no
    > >>>> checking for getpgrp... yes
    > >>>> checking for setpgrp... yes
    > >>>> checking for getpgid... yes
    > >>>> checking for setpgid... yes
    > >>>> checking for initgroups... yes
    > >>>> checking for getgroups... yes
    > >>>> checking for setgroups... yes
    > >>>> checking for getpriority... yes
    > >>>> checking for getrlimit... yes
    > >>>> checking for setrlimit... yes
    > >>>> checking for sysconf... yes
    > >>>> checking for dlopen... no
    > >>>> checking for sigprocmask... yes
    > >>>> checking for sigaction... yes
    > >>>> checking for _setjmp... yes
    > >>>> checking for setsid... yes
    > >>>> checking for telldir... yes
    > >>>> checking for seekdir... yes
    > >>>> checking for fchmod... yes
    > >>>> checking for mktime... yes
    > >>>> checking for timegm... yes
    > >>>> checking for cosh... yes
    > >>>> checking for sinh... yes
    > >>>> checking for tanh... yes
    > >>>> checking for setuid... yes
    > >>>> checking for setgid... yes
    > >>>> checking for setenv... yes
    > >>>> checking for unsetenv... yes
    > >>>> checking whether struct tm is in sys/time.h or time.h... time.h
    > >>>> checking for struct tm.tm_zone... yes
    > >>>> checking for struct tm.tm_gmtoff... yes
    > >>>> checking for external int daylight... yes
    > >>>> checking for negative time_t for gmtime(3)... yes
    > >>>> checking...

    >
    > >>>> read more »

    >
    > >>> Bump - please - anybody? Help?

    >
    > >> The only obvious thing that I see is

    >
    > >> gcc -shared -rdynamic -Wl,-export-dynamic -L'../..' -o ../../.ext/x86_64-linux/bigdecimal.so bigdecimal.o -lcrypt -lm -lc
    > >> /usr/bin/ld: /opt/usr/bin/../lib/gcc/x86_64-redhat-linux/
    > >> 3.4.6/../../../../lib64/libm.a(k_standard.o): relocation R_X86_64_32S
    > >> against `a local symbol' can not be used when making a shared object;
    > >> recompile with -fPIC

    >
    > >> It looks like some kind of incompatibility between a system library and bigdecimal. Try taking the '-fPIC' off of "CFLAGS" in your Makefiles and see if that helps.

    >
    > >> I do know that Ruby 1.8.6 compiles, etc., flawlessly on my Gentoo AMD64 system, but I have gcc 4.1.2, not 3.4.6. You could also try an upgrade toRHEL 5 to see if it goes away.

    >
    > > Thanks for the info - actually that flag though wasn't on. It's
    > > weird because it compiles fine on an older RHEL4 box but not a newer
    > > one... It's unusual that's the case.

    >
    > Are you saying that it works on one RHEL4/x86_64 box and not the other,
    > or that it works on an RHEL4/x86(32) box but not on an RHEL/x86_64 box?
    >
    > I'll be loading CentOS 5 on an x64 system later this week, and it comes
    > with Ruby 1.8.5, so I know at least that works. You could try getting
    > the source RPMs for Ruby and its friends from the RHEL 5 source
    > repository and doing an "rpmbuild" ... that would tell you if there are
    > special hacks you need to do to bring Ruby up on your box.


    Works on one both x86_64, both RHEL4, the one more current is where
    the build breaks. Go figure eh...

    Well 1.8.5 for CentOS 4 worked like a charm. Argh! Go figure...
    Costas, May 28, 2007
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Dayton Jones

    Python/up2date error on RHEL4

    Dayton Jones, Apr 11, 2006, in forum: Python
    Replies:
    0
    Views:
    487
    Dayton Jones
    Apr 11, 2006
  2. Christopher Taylor

    Install from source on a x86_64 machine

    Christopher Taylor, Oct 18, 2006, in forum: Python
    Replies:
    4
    Views:
    313
    Christopher Taylor
    Oct 19, 2006
  3. Christopher Taylor

    Help: Python2.3 & Python2.4 on RHEL4 x86_64

    Christopher Taylor, Oct 18, 2006, in forum: Python
    Replies:
    15
    Views:
    511
    Christopher Taylor
    Oct 24, 2006
  4. Eric B.

    Installing Python2.4 on RHEL4?

    Eric B., Mar 14, 2008, in forum: Python
    Replies:
    2
    Views:
    397
    Eric B.
    Mar 14, 2008
  5. William S.
    Replies:
    1
    Views:
    441
    J.O. Aho
    Mar 8, 2011
Loading...

Share This Page