Compiling ruby 2.3.0 on HPUX 11.31 ia64

Hello everyone. I’m trying to get Ruby 2.3.0 to compile on HPUX 11.31
(ia64) and of course it’s not working. Not sure where to go from here
and what I need to provide to get this working but here is what I have:

OS: HPUX 11.31
CPU: ia64
Compiler: gcc (GCC) 4.2.3 (From HP depot)
Compiler Options: None specified/Default
Make: GNU Make 4.1 (From HP Depot - Built for ia64-hp-hpux11.31)


Software installed:

Additional Software:

autoconf 2.69 autoconf
bison 2.7.1 bison
bzip2 1.0.6 bzip2
db 6.0.20 db
expat 2.1.0 expat
flex 2.5.39 flex
freetype 2.6 freetype
gcc 4.2.3 gcc
gd 2.1.0 gd
gdbm 1.10 gdbm
gettext 0.19.7 gettext
gsk7bas64 7.0.4.14 IBM gsk7 RUNTIME
KIT
jpeg 9.1.0 jpeg
lcms 1.19 lcms
libXpm 3.5.11 libXpm
libiconv 1.14 libiconv
libpng 1.6.8 libpng
logrotate 3.8.1 logrotate
m4 1.4.17 m4
make 4.1 make
ncurses 6.0 ncurses
openssl 1.0.2e openssl
pcre 8.37 pcre
perl 5.10.1 perl
popt 1.16 popt
readline 6.3.008 readline
termcap 1.3.1 termcap
tiff 4.0.6 tiff
tusc 8.1 tusc
xz 5.2.1 xz
zlib 1.2.8 zlib

Configure log:

checking build system type… ia64-hp-hpux11.31
checking host system type… ia64-hp-hpux11.31
checking target system type… ia64-hp-hpux11.31
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
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 for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking how to run the C preprocessor… gcc -E
checking for grep that handles long lines and -e… /usr/bin/grep
checking for egrep… /usr/bin/grep -E
checking whether gcc needs -traditional… no
checking for ld… ld
checking whether the linker is GNU ld… no
checking whether gcc -E accepts -o… yes
checking for ranlib… ranlib
checking for ar… ar
checking for as… as
checking for objdump… objdump
checking for objcopy… objcopy
checking for nm… nm
checking whether ln -s works… yes
checking whether make sets $(MAKE)… yes
checking for a BSD-compatible install…
checking for a thread-safe mkdir -p… -d
use ‘mkdir -p’ as MKDIR_P
checking for dtrace… no
checking for dot… no
checking for doxygen… no
checking for pkg-config… pkg-config
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 whether it is safe to define EXTENSIONS… yes
checking for cd using physical directory… cd -P
checking whether CFLAGS is valid… yes
checking whether LDFLAGS is valid… yes
checking whether -Wno-unused-parameter is accepted as CFLAGS… yes
checking whether -Wno-parentheses is accepted as CFLAGS… yes
checking whether -Wno-long-long is accepted as CFLAGS… yes
checking whether -Wno-missing-field-initializers is accepted as
CFLAGS… yes
checking whether -Wunused-variable is accepted as CFLAGS… yes
checking whether -Wpointer-arith is accepted as CFLAGS… yes
checking whether -Wwrite-strings is accepted as CFLAGS… yes
checking whether -Wdeclaration-after-statement is accepted as CFLAGS…
yes
checking whether -Wshorten-64-to-32 is accepted as CFLAGS… no
checking whether -Wimplicit-function-declaration is accepted as
CFLAGS… yes
checking whether -Wdivision-by-zero is accepted as CFLAGS… no
checking whether -Wdeprecated-declarations is accepted as CFLAGS… yes
checking whether -Wno-packed-bitfield-compat is accepted as CFLAGS… no
checking whether -Wextra-tokens is accepted as CFLAGS… no
checking whether -Wall -Wextra is accepted as CFLAGS… yes
checking whether -Qunused-arguments is accepted as CFLAGS… no
checking whether INFINITY is available without C99 option… yes
checking whether NAN is available without C99 option… yes
checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS… yes
checking whether -fstack-protector is accepted as CFLAGS… no
checking whether -std=iso9899:1999 is accepted as CFLAGS… yes
checking whether -fno-strict-overflow is accepted as CFLAGS… yes
checking whether -ggdb3 is accepted as CFLAGS… yes
checking whether -fvisibility=hidden is accepted as CFLAGS… yes
checking whether -fno-fast-math is accepted as CFLAGS… yes
checking for crypt in -lcrypt… no
checking for dlopen in -ldl… yes
checking for shl_load in -ldld… yes
checking for shutdown in -lsocket… no
checking for dirent.h that defines DIR… no
checking for sys/ndir.h that defines DIR… no
checking for sys/dir.h that defines DIR… no
checking for ndir.h that defines DIR… no
checking for library containing opendir… none required
checking for stdbool.h that conforms to C99… yes
checking for _Bool… yes
checking for sys/wait.h that is POSIX.1 compatible… yes
checking a.out.h usability… yes
checking a.out.h presence… yes
checking for a.out.h… yes
checking atomic.h usability… no
checking atomic.h presence… no
checking for atomic.h… no
checking direct.h usability… no
checking direct.h presence… no
checking for direct.h… no
checking grp.h usability… yes
checking grp.h presence… yes
checking for grp.h… yes
checking fcntl.h usability… yes
checking fcntl.h presence… yes
checking for fcntl.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 intrinsics.h usability… no
checking intrinsics.h presence… no
checking for intrinsics.h… no
checking langinfo.h usability… yes
checking langinfo.h presence… yes
checking for langinfo.h… yes
checking limits.h usability… yes
checking limits.h presence… yes
checking for limits.h… yes
checking locale.h usability… yes
checking locale.h presence… yes
checking for locale.h… yes
checking malloc.h usability… yes
checking malloc.h presence… yes
checking for malloc.h… yes
checking malloc/malloc.h usability… no
checking malloc/malloc.h presence… no
checking for malloc/malloc.h… no
checking malloc_np.h usability… no
checking malloc_np.h presence… no
checking for malloc_np.h… no
checking net/socket.h usability… no
checking net/socket.h presence… no
checking for net/socket.h… no
checking process.h usability… no
checking process.h presence… no
checking for process.h… no
checking pwd.h usability… yes
checking pwd.h presence… yes
checking for pwd.h… yes
checking setjmpex.h usability… no
checking setjmpex.h presence… no
checking for setjmpex.h… no
checking sys/attr.h usability… no
checking sys/attr.h presence… no
checking for sys/attr.h… no
checking sys/fcntl.h usability… yes
checking sys/fcntl.h presence… yes
checking for sys/fcntl.h… yes
checking sys/file.h usability… yes
checking sys/file.h presence… yes
checking for sys/file.h… yes
checking sys/id.h usability… no
checking sys/id.h presence… no
checking for sys/id.h… no
checking sys/ioctl.h usability… yes
checking sys/ioctl.h presence… yes
checking for sys/ioctl.h… yes
checking sys/mkdev.h usability… no
checking sys/mkdev.h presence… no
checking for sys/mkdev.h… no
checking sys/param.h usability… yes
checking sys/param.h presence… yes
checking for sys/param.h… yes
checking sys/prctl.h usability… no
checking sys/prctl.h presence… no
checking for sys/prctl.h… no
checking sys/resource.h usability… yes
checking sys/resource.h presence… yes
checking for sys/resource.h… yes
checking sys/select.h usability… yes
checking sys/select.h presence… yes
checking for sys/select.h… yes
checking sys/sendfile.h usability… no
checking sys/sendfile.h presence… no
checking for sys/sendfile.h… no
checking sys/socket.h usability… yes
checking sys/socket.h presence… yes
checking for sys/socket.h… yes
checking sys/syscall.h usability… yes
checking sys/syscall.h presence… yes
checking for sys/syscall.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/uio.h usability… yes
checking sys/uio.h presence… yes
checking for sys/uio.h… yes
checking sys/utime.h usability… no
checking sys/utime.h presence… no
checking for sys/utime.h… no
checking syscall.h usability… yes
checking syscall.h presence… yes
checking for syscall.h… yes
checking time.h usability… yes
checking time.h presence… yes
checking for time.h… yes
checking ucontext.h usability… yes
checking ucontext.h presence… yes
checking for ucontext.h… yes
checking utime.h usability… yes
checking utime.h presence… yes
checking for utime.h… yes
checking gmp.h usability… no
checking gmp.h presence… no
checking for gmp.h… no
checking for special C compiler options needed for large files… no
checking for _FILE_OFFSET_BITS value needed for large files… 64
checking whether byte ordering is bigendian… yes
checking for an ANSI C-conforming const… yes
checking whether char is unsigned… no
checking for inline… (cached) no
checking for working volatile… yes
checking for typeof syntax and keyword spelling… typeof
checking for long long… yes
checking for off_t… yes
checking char bit… 8
checking size of int… 4
checking size of short… 2
checking size of long… 4
checking size of long long… 8
checking size of __int64… 0
checking size of off_t… 8
checking size of void*… 4
checking size of float… 4
checking size of double… 8
checking size of time_t… 4
checking size of clock_t… 4
checking packed struct attribute… x attribute((packed))
checking for printf prefix for long long… ll
checking for pid_t… yes
checking for convertible type of pid_t… INT
checking for uid_t… yes
checking for convertible type of uid_t… INT
checking for gid_t… yes
checking for convertible type of gid_t… INT
checking for time_t… yes
checking for convertible type of time_t… LONG
checking for dev_t… yes
checking for convertible type of dev_t… INT
checking for mode_t… no
checking for convertible type of mode_t… LONG
checking for rlim_t… yes
checking for convertible type of rlim_t… ULL
checking for off_t… (cached) yes
checking for convertible type of off_t… LL
checking for clockid_t… yes
checking for convertible type of clockid_t… UINT
checking for prototypes… yes
checking token paste string… ansi
checking stringization… #expr
checking string literal concatenation… yes
checking for variable length prototypes and stdarg.h… yes
checking for variable length macro… yes
checking for NORETURN function attribute… attribute ((noreturn)) x
checking for DEPRECATED function attribute… attribute
((deprecated)) x
checking for DEPRECATED_BY function attribute… x
checking for DEPRECATED_TYPE type attribute… attribute
((deprecated mesg)) x
checking for NOINLINE function attribute… attribute ((noinline)) x
checking for WEAK function attribute… attribute ((weak)) x
checking for stdcall function attribute… x
checking for cdecl function attribute… x
checking for fastcall function attribute… x
checking for FUNC_UNOPTIMIZED function attribute… x
checking for FUNC_MINIMIZED function attribute… x
checking for function alias… alias
checking for __atomic builtins… no
checking for __sync builtins… yes
checking for __builtin_unreachable… no
checking for exported function attribute… attribute
((visibility(“default”)))
checking for function name string predefined identifier… func
checking if enum over int is allowed… yes
checking whether sys_nerr is declared… no
checking whether getenv is declared… yes
checking for size_t… yes
checking size of size_t… 4
checking size of ptrdiff_t… 4
checking for printf prefix for size_t… z
checking for printf prefix for ptrdiff_t… t
checking for struct stat.st_blksize… no
checking for struct stat.st_blocks… no
checking for struct stat.st_rdev… no
checking size of struct stat.st_size… 0
checking size of struct stat.st_ino… 0
checking for struct stat.st_atim… no
checking for struct stat.st_atimespec… no
checking for struct stat.st_atimensec… no
checking for struct stat.st_mtim… no
checking for struct stat.st_mtimespec… no
checking for struct stat.st_mtimensec… no
checking for struct stat.st_ctim… no
checking for struct stat.st_ctimespec… no
checking for struct stat.st_ctimensec… no
checking for struct stat.st_birthtimespec… no
checking for struct timeval… yes
checking size of struct timeval.tv_sec… SIZEOF_TIME_T
checking for struct timespec… no
checking for struct timezone… no
checking for clockid_t… (cached) yes
checking for fd_mask… no
checking for int8_t… yes
checking size of int8_t… 1
checking for uint8_t… yes
checking size of uint8_t… 1
checking for int16_t… yes
checking size of int16_t… 2
checking for uint16_t… yes
checking size of uint16_t… 2
checking for int32_t… yes
checking size of int32_t… 4
checking for uint32_t… yes
checking size of uint32_t… 4
checking for int64_t… yes
checking size of int64_t… 8
checking for uint64_t… yes
checking size of uint64_t… 8
checking for intptr_t… yes
checking size of intptr_t… 4
checking for uintptr_t… yes
checking size of uintptr_t… 4
checking for ssize_t… yes
checking size of ssize_t… 4
checking for stack end address… no
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 dynamic size alloca… ok
checking for working memcmp… yes
checking for broken erfc of glibc-2.3.6 on IA64… no
checking for acosh… yes
checking for cbrt… yes
checking for crypt… yes
checking for dup2… yes
checking for erf… yes
checking for explicit_bzero… no
checking for ffs… yes
checking for finite… yes
checking for flock… yes
checking for hypot… yes
checking for isinf… no
checking for isnan… yes
checking for lgamma_r… yes
checking for memmove… yes
checking for nextafter… yes
checking for setproctitle… no
checking for strchr… yes
checking for strerror… yes
checking for strlcat… no
checking for strlcpy… no
checking for strstr… yes
checking for tgamma… yes
checking sys/pstat.h usability… yes
checking sys/pstat.h presence… yes
checking for sys/pstat.h… yes
checking for signbit… yes
checking for broken memmem… yes
checking for pid_t… (cached) yes
checking vfork.h usability… no
checking vfork.h presence… no
checking for vfork.h… no
checking for fork… yes
checking for vfork… yes
checking for working fork… yes
checking for working vfork… (cached) yes
checking for __syscall… no
checking for _longjmp… yes
checking for _setjmp… yes
checking for _setjmpex… no
checking for atan2l… yes
checking for atan2f… yes
checking for chroot… yes
checking for chsize… no
checking for clock_gettime… yes
checking for cosh… yes
checking for daemon… (cached) no
checking for dirfd… no
checking for dl_iterate_phdr… no
checking for dlopen… yes
checking for dladdr… yes
checking for dup… yes
checking for dup3… no
checking for eaccess… no
checking for endgrent… yes
checking for fchmod… yes
checking for fchown… yes
checking for fcntl… yes
checking for fdatasync… yes
checking for fgetattrlist… no
checking for fmod… yes
checking for fsync… yes
checking for ftruncate… yes
checking for ftruncate64… yes
checking for getattrlist… no
checking for getcwd… yes
checking for getgidx… no
checking for getgrnam… yes
checking for getgrnam_r… yes
checking for getgroups… yes
checking for getpgid… yes
checking for getpgrp… yes
checking for getpriority… yes
checking for getpwnam_r… yes
checking for getresgid… yes
checking for getresuid… yes
checking for getrlimit… yes
checking for getsid… yes
checking for gettimeofday… yes
checking for getuidx… no
checking for gmtime_r… yes
checking for initgroups… yes
checking for ioctl… yes
checking for isfinite… no
checking for issetugid… no
checking for killpg… yes
checking for lchmod… yes
checking for lchown… yes
checking for link… yes
checking for llabs… yes
checking for lockf… yes
checking for log2… yes
checking for lstat… yes
checking for malloc_usable_size… yes
checking for malloc_size… no
checking for mblen… yes
checking for memalign… yes
checking for memset_s… no
checking for writev… yes
checking for memrchr… no
checking for memmem… (cached) no
checking for mkfifo… yes
checking for mknod… yes
checking for mktime… yes
checking for pipe2… no
checking for poll… yes
checking for posix_fadvise… yes
checking for posix_memalign… no
checking for ppoll… no
checking for pread… yes
checking for qsort_r… no
checking for readlink… yes
checking for round… yes
checking for sched_getaffinity… no
checking for seekdir… yes
checking for select_large_fdset… no
checking for sendfile… yes
checking for setegid… yes
checking for setenv… yes
checking for seteuid… yes
checking for setgid… yes
checking for setgroups… yes
checking for setpgid… yes
checking for setpgrp… yes
checking for setregid… yes
checking for setresgid… yes
checking for setresuid… yes
checking for setreuid… yes
checking for setrgid… no
checking for setrlimit… yes
checking for setruid… no
checking for setsid… yes
checking for setuid… yes
checking for shutdown… yes
checking for sigaction… yes
checking for sigaltstack… yes
checking for sigprocmask… yes
checking for sinh… yes
checking for spawnv… no
checking for symlink… yes
checking for syscall… yes
checking for sysconf… yes
checking for tanh… yes
checking for telldir… yes
checking for timegm… no
checking for times… yes
checking for truncate… yes
checking for truncate64… yes
checking for unsetenv… yes
checking for utimensat… no
checking for utimes… yes
checking for wait4… yes
checking for waitpid… yes
checking if getcwd allocates buffer if NULL is given… no
checking for __builtin_bswap16… no
checking for __builtin_bswap32… no
checking for __builtin_bswap64… no
checking for __builtin_clz… yes
checking for __builtin_clzl… yes
checking for __builtin_clzll… yes
checking for __builtin_choose_expr… yes
checking for __builtin_choose_expr_constant_p… no
checking for __builtin_types_compatible_p… yes
checking whether atan2 handles Inf as C99… no
checking for clock_getres… yes
checking for unsetenv returns a value… yes
checking for sigsetjmp as a macro or function… no
checking whether struct tm is in sys/time.h or time.h… time.h
checking for struct tm.tm_zone… no
checking whether tzname is declared… no
checking for tzname… yes
checking for struct tm.tm_gmtoff… no
checking for external int daylight… no
checking for external timezone… long
checking for external altzone… no
checking for timezone… yes
checking whether timezone requires zero arguments… no
checking for negative time_t for gmtime(3)… yes
checking for localtime(3) overflow correctly… yes
checking for __libc_ia64_register_backing_store_base… no
checking whether right shift preserve sign bit… yes
checking whether _SC_CLK_TCK is supported… no
checking stack growing direction on ia64… -1
checking for pthread_kill in -lthr… no
checking for pthread_kill in -lpthread… yes
checking for pthread_np.h… no
checking whether pthread_t is scalar type… yes
checking for sched_yield… yes
checking for pthread_attr_setinheritsched… yes
checking for pthread_attr_get_np… no
checking for pthread_attr_getstack… yes
checking for pthread_get_stackaddr_np… no
checking for pthread_get_stacksize_np… no
checking for thr_stksegment… no
checking for pthread_stackseg_np… no
checking for pthread_getthrds_np… no
checking for pthread_cond_init… yes
checking for pthread_condattr_setclock… no
checking for pthread_condattr_init… yes
checking for pthread_sigmask… yes
checking for pthread_setname_np… no
checking for pthread_set_name_np… no
checking for pthread_getattr_np… no
checking for pthread_attr_init… yes
checking if mcontext_t is a pointer… no
checking for getcontext… yes
checking for setcontext… yes
checking if fork works with pthread… yes
checking whether ELF binaries are produced… yes
checking elf.h usability… no
checking elf.h presence… yes
configure: WARNING: elf.h: present but cannot be compiled
configure: WARNING: elf.h: check for missing prerequisite headers?
configure: WARNING: elf.h: see the Autoconf documentation
configure: WARNING: elf.h: section “Present But Cannot Be Compiled”
configure: WARNING: elf.h: proceeding with the compiler’s result
checking for elf.h… no
checking elf_abi.h usability… no
checking elf_abi.h presence… no
checking for elf_abi.h… no
checking whether OS depend dynamic link works… yes
checking for backtrace… no
checking valgrind/memcheck.h usability… no
checking valgrind/memcheck.h presence… no
checking for valgrind/memcheck.h… no
checking for strip… strip
checking whether -fPIE is accepted as CFLAGS… yes
checking whether -pie is accepted as LDFLAGS… yes
checking whether wrapper for SHLIB_PATH is needed… no
checking for __builtin_setjmp… yes with cast ()
checking for setjmp type… __builtin_setjmp
checking for prefix of external symbols… NONE
checking pthread.h usability… no
checking pthread.h presence… yes
configure: WARNING: pthread.h: present but cannot be compiled
configure: WARNING: pthread.h: check for missing prerequisite
headers?
configure: WARNING: pthread.h: see the Autoconf documentation
configure: WARNING: pthread.h: section “Present But Cannot Be
Compiled”
configure: WARNING: pthread.h: proceeding with the compiler’s result
checking for pthread.h… no
checking if make is GNU make… yes
checking for nroff… /usr/bin/nroff
.ext/include/ia64-hpux11.31/ruby/config.h unchanged
configure: ruby library version = 2.3.0
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile
config.status: creating ruby-2.3.pc


which make

/usr/local/bin/make
root@host[/home/user/ruby-2.3.0]

make -v

GNU Make 4.1
Built for ia64-hp-hpux11.31
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

make

    CC = gcc
    LD = ld
    LDSHARED = ld -b
    CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra

-Wno-unused-parameter -Wno-parentheses -Wno-long-long
-Wno-missing-field-initializers -Wunused-variable -Wpointer-arith
-Wwrite-strings -Wdeclaration-after-statement
-Wimplicit-function-declaration -Wdeprecated-declarations
-std=iso9899:1999
XCFLAGS = -D_FORTIFY_SOURCE=2 -fno-strict-overflow
-fvisibility=hidden -DRUBY_EXPORT -fPIE
CPPFLAGS = -I. -I.ext/include/ia64-hpux11.31 -I./include -I.
DLDFLAGS = -E -Wl,-E -pie
SOLIBS =
Using built-in specs.
Target: ia64-hp-hpux11.31
Configured with: …/gcc/configure
Thread model: posix
gcc version 4.2.3
compiling main.c
In file included from ./include/ruby/defines.h:31,
from ./include/ruby/ruby.h:29,
from ./include/ruby.h:33,
from main.c:13:
/usr/include/sys/stat.h: In function stat:
/usr/include/sys/stat.h:126: error: argument a doesn’t match prototype
/usr/include/sys/stat.h:85: error: prototype declaration
In file included from ./include/ruby/defines.h:68,
from ./include/ruby/ruby.h:29,
from ./include/ruby.h:33,
from main.c:13:
./include/ruby/missing.h: At top level:
./include/ruby/missing.h:64: error: redefinition of struct timespec
Makefile:375: recipe for target ‘main.o’ failed
make: *** [main.o] Error 1

I know I’ve seen in some posts it cannot find timespec struct in the
system headers. Just not sure if it’s my issue, the configure issue or
coding issue. Or even if the latest ruby will compile on HPUX.

Help?

Thanks

Glen

Well I seem to be making some headway on this. Still no one has come
forward. Any ideas on this a linking issue with miniruby? There was a
post out there back in 2014 but it was not answered. Any ideas on this
possible linking issue?

make

    CC = gcc
    LD = ld
    LDSHARED = ld -b
    CFLAGS = -O0 -g -pthread -mlp64 -w -pipe -Wall -fexceptions 

-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include -fPIC
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector
-fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -D_HPUX_SOURCE
-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include -I.
-I.ext/include/ia64-hpux11.31 -I./include -I.
DLDFLAGS = -E -fstack-protector -Wl,-E
-Wl,+s,+b,/usr/local/lib/hpux64
SOLIBS = -lpthread -ldld -ldl -lm
Using built-in specs.
Target: ia64-hp-hpux11.31
Configured with: …/gcc/configure
Thread model: posix
gcc version 4.2.3
linking miniruby
ld: Unsatisfied symbol “_Asm_get_sp” in file thread.o
ld: (Warning) Potential unresolved symbol “main”:
shared library reference is resolved to non-exported
definition in file “main.o”.
1 warning.
1 error.
collect2: ld returned 1 exit status
Makefile:219: recipe for target ‘miniruby’ failed
make: *** [miniruby] Error 1

Here is the flags I’m using:

export CC=gcc
export CFLAGS="-O0 -g -pthread -mlp64 -w -pipe -Wall -fexceptions
-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include"
export CPPFLAGS="-D_HPUX_SOURCE
-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include"
./configure --with-gcc --enable-pthread --libdir=/usr/local/lib/hpux64
–enable-shared --disable-rpath

Any help would be appreciated.

looking at http://hpux.connect.org.uk/ it seems that python, tcl, julia
are ported to hpux,
perhaps you could see how pthread is compiled/linked.

Regards,

Was this ever solved?

I’m trying to build ruby-2.3.1 on HP-UX and ran into similar problems.

FYI: I’ve logged a bug report Bug #12806: Compiling ruby 2.3.1 on HPUX 11.31 ia64 breaks in segmentation fault - Ruby master - Ruby Issue Tracking System

I’m seeking to install puppet using Ruby gems on HPUX.

Has anyone been able to compile Ruby 2.x on HPUX? Or even 1.9.3?

HPUX Internet Express package/depot, available from HP, is 1.9.1
Porting Centre is 1.8.4

I would like 2.x or greater, compilation using GCC and CC fails. I have
searched this forum, and I can basically reproduce what the community is
seeing, but there are no answers.

I have tried with the following source:

1.9.3
2.0.0
2.1.0
2.2.5
2.3.1

Reproducible errors:

  1. timespec error occurs during make using

./configure --enable-shared
make
./include/ruby/missing.h:50: error: redefinition of ‘struct timespec’

  1. If I add these flags, make fails while linking miniruby

CFLAGS="-O0 -g -pthread -mlp64 -pipe -Wall -fexceptions
-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include"
CPPFLAGS="-D_HPUX_SOURCE
-I/usr/local/lib/gcc/ia64-hp-hpux11.31/4.2.3/include"

./configure --enable-shared
make

ld: Unsatisfied symbol “_Asm_get_sp” in file thread.o

I’m looking into ways for getting a newer Ruby on the system. Any help
would be
appreciated.