Skip to content

Tru64 notes

gdwnldsKSC edited this page Aug 6, 2026 · 29 revisions

Eventually, Make-4.4.1 can be cajoled into building.

Current package versions on my dev environment:

make-4.4.1 (latest as of Aug 4th, 2026)
gcc-4.7.4 (last Tru64 supporting version natively)
readline-8.3 (latest as of Aug 4th, 2026)
bash-3.2.57 (haven't gotten newer versions to build nicely yet)
automake-1.18 (latest as of Aug 4th, 2026)
autoconf-2.73 (latest as of Aug 4th, 2026)
bzip2-latest (latest as of Aug 4th, 2026)
gettext-1.0 (latest as of Aug 4th, 2026)
tar-1.26 (from below linked instructions)
texinfo-4.0 (randomly chosen for higher chance of success given age)
gawk-3.0.1 (from below linked instructions)
autogen-5.18.7 (not yet building)
libiconv-1.19 (latest as of Aug 4th, 2026)
glib-2.56.4 (work in progress)

I've been building everything with --prefix=/usr/local and /usr/local in my path, as well as a few other odds and ends such as my profile....

Assume all things built with gmake (/usr/local/make renamed to gmake) and gcc-4.7.4 after building up to gcc-4.7.4 following these instructions (though, not using any temporary folders or version specific things, I just extracted and ran with it since everything is going into /usr/local - obviously, all prefixes will be /usr/local if you do it that way instead of /opt/gcc44 etc for example) - https://www.zx.net.nz/vc/dunix/gcc.shtml

I recall I had to build texinfo to make some parts work, so that was possibly built with the Compaq C compiler, I'll update when I go through a thorough rebuild attempt to rectify/conslidate instructions.

As I've progressed, you can see from package versions above, that I've ended up upgrading/replacing versions originally built under the Compaq C compiler for the GCC bootstrap to newer ones, so I'm unsure if those can be built to those versions. Best to bootstrap with those instructions/versions.

Profile entry as follows:

# begin customs
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

LOCAL_PREFIX=/usr/local

PATH="$LOCAL_PREFIX/bin:$LOCAL_PREFIX/sbin:$PATH"
PKG_CONFIG_PATH="$LOCAL_PREFIX/lib/pkgconfig:$LOCAL_PREFIX/share/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
ACLOCAL_PATH="$LOCAL_PREFIX/share/aclocal${ACLOCAL_PATH:+:$ACLOCAL_PATH}"
INFOPATH="$LOCAL_PREFIX/share/info:$LOCAL_PREFIX/info${INFOPATH:+:$INFOPATH}"

export LOCAL_PREFIX PATH PKG_CONFIG_PATH ACLOCAL_PATH INFOPATH

C_INCLUDE_PATH="/usr/local/include${C_INCLUDE_PATH:+:$C_INCLUDE_PATH}"
CPLUS_INCLUDE_PATH="/usr/local/include${CPLUS_INCLUDE_PATH:+:$CPLUS_INCLUDE_PATH}"

export C_INCLUDE_PATH CPLUS_INCLUDE_PATH
#end customs

Make 4.4.1 notes:

strtoll compile error, fix with (in src/config.h)

wherever #undef HAVE_STRTOLL is, comment it out (or whatever STRTOLL stuff is there) and do this:

#define HAVE_STRTOLL 1
#define strtoll strtol

And make will compile


libiconv / iconv 1.19 notes:

env CPPFLAGS="-D_REENTRANT" ./configure --disable-nls --disable-threads --prefix=/usr/local

This requires a source edit as getprogname.c will bail with #error "getprogname module not ported to this OS"

Where this is in srclib/getprogname.c:

  return "?";
# else
#  error "getprogname module not ported to this OS"
# endif

modify to:

  return "?";
# elif defined __osf__
  extern const char *program_name;
  return program_name ? last_component (program_name) : "?";
# else
#  error "getprogname module not ported to this OS"
# endif

This is due to Gnulib upstream removal of Tru64 support, same reason as the requirement for --disable-threads (default behavior gnulib when it had Tru64 support)

Theoretically, after we have gettext installed/working, we can rebuild without --disable-nls to have everything fully working except threads.


gettext-1.0 notes:

env MAKE="gmake" BIN_SH=xpg4 CONFIG_SHELL=/usr/bin/posix/sh CPPFLAGS="-D_REENTRANT" CFLAGS="-O2 -g0" CXXFLAGS="-O2 -g0" ./configure --enable-threads=posix --prefix=/usr/local

You may need this: ulimit -S -d 1048576 if sed core dumps on you at some point.

wctype.in.h - many copies - has two problems. Here's the fixes:

find . -name wctype.in.h -print |
while read f
do
    sed 's/^#if @HAVE_WINT_T@$/#if @HAVE_WINT_T@ \&\& !(defined __osf__ || defined __osf)/' "$f" > "$f.new" && mv "$f.new" "$f"
done

and

find . -name wctype.in.h -print | while IFS= read -r f
do
    sed 's/^#   define iswctype rpl_iswctype$/#   define iswctype(wc, desc) rpl_iswctype (wc, desc)/' "$f" > "$f.new" || exit 1
    mv "$f.new" "$f" || exit 1
done

getprogname.c also requires the same edit as before, in gettext-runtime/gnulib-lib/getprogname.c, gettext-tools/gnulib-lib/getprogname.c, gettext-tools/libgettextpo/getprogname.c and libtextstyle/lib/getprogname.c:

  return "?";
# else
#  error "getprogname module not ported to this OS"
# endif

modify to:

  return "?";
# elif defined __osf__
  extern const char *program_name;
  return program_name ? last_component (program_name) : "?";
# else
#  error "getprogname module not ported to this OS"
# endif

In gettext-tools/tree-sitter-0.23.2/lib/src/lib.c replace the first POSIX_C_SOURCE line with

#if defined(__osf__) || defined(__osf)
# define _OSF_SOURCE 1
#endif
#define _POSIX_C_SOURCE 200112L

#include <inttypes.h>
#ifndef PRId32
# define PRId32 "d"
#endif

Clone this wiki locally