Login Register Actian.com  

Actian Community Wiki

Navigation
Learn About
Developing With
Ingres Talk
Information
Toolbox

Ingres Community Build Page

From Ingres Community Wiki

(Redirected from Community Build Page)
Jump to: navigation, search

This page has been created as a single point of contact for all things relating the building the community version of Ingres

Contents

Goal

To make building the Ingres source as straight forward as possible on as many platforms as possible.

Contacts

Current Builds

If you manage to build the Ingres source on an platform not mentioned below, please add your achievement to the table. Similarly if you're having trouble with a particular platform, add that too. There may well be someone else feeling your pain!

OS Version Architecture Source Version Builder Status Notes
CentOS Linux5.4x8610.0.0-2255Roy HannBuilt and installed successfullymake sure not to have mixed revs of Xerces
Mac OS X10.4 (Tiger)PowerPC9.3.0-111Jay HankinsonBuilt and installed successfullySee here
Mac OS X10.5 (Leopard)x869.3.0-111Jay HankinsonBuilt and installed successfullySee here
Fedora Linux Core 8 x86_649.3.0.-111Jay HankinsonBuilt and installed sucessfullySVN revision 22
Linux 64bitRHEL 5 (Tikanga)x86_649.3.0-111Martin BowesBuilt and installed successfullySee Gotchas but issues resolved in rev 22
Ubuntu Linux7.10 (Gutsy Gibbon)x869.3.0-111Paul MasonBuilt and installed successfullySVN revision 11
Ubuntu Linux8.04 (Hardy Heron)x86_649.3.0-111Paul MasonBuilt and installed successfullySee here
Windows XP SP3 x869.3.0-102Chen zhenBuilt and installed successfullySVN revision 34
Fedora Linux 9 (Sulphur) x86 i386 9.3.0-100Chen zhenBuilt and installed successfullySVN revision 34
Solaris 9 SPARC 9.1.0-123Simon LovellBuilt successfullymust use -xarch=v8plus with SunStudio/11

Useful Links

Problems, Gotchas, Solutions and Workarounds

Installing Jam

The jam source can be found at: ftp://ftp.perforce.com/pub/jam/jam-2.5.tar To install, simply copy the tar file to your home directory, extract the files from the tar and execute the 'make' command. This will create ~/jam-2.5/bin.linux/jam.

You then need root privilege to install the new jam command. Eg. (as root) copy ~/jam-2.5/bin.linux/jam to /usr/bin/jam

Building Pax

x86_64

The Pax build may fail stating 'LINUX is not supported.' To correct this simply edit the Jamfile and replace the LINUXX86 with LINUX.

32bit and 64bit libraries for Xercesc

To build both the 32-bit and 64-bit libraries for Xerces-C you need to do the following:

  • obtain and unpack the source for Xerces-C 2.7 (here)
  • set XERCESCROOT to the directory you unpacked the source to e.g.
export XERCESCROOT=/home/ingres/xerces-c-src_2_7_0
  • configure and build the 32-bit libraries first
cd $XERCESCROOT/src/xercesc
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread -b32 -l"-m32" -z"-m32"
make
  • copy the libraries to an lp32 directory
mkdir $XERCESCROOT/lib/lp32
cp -p $XERCESCROOT/lib/lib* $XERCESCROOT/lib/lp32
  • clean the build environment. If you skip this step it will simply re-link the 32-bit objects.
make clean
  • configure and build the 64-bit version
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread -b64
make

The other, perhaps simpler, way to create the 32bit library is to make the $XERCESCROOT/lib/lp32 subdirectory and then to install into it a compiled library set. The compiled library set can be found here The archive for 32-bit binaries is not labelled as 32-bit it is labelled for Red Hat (and the 64-bit one is labelled for Suse).

Simply download the tar file, unpack it and copy its lib area into $XERCESCROOT/lib/lp32.

At time of writing the above links are correct for Xerces-C version 2.7, which is the current version needed to build Ingres. If you need a different version, please check http://xml.apache.org/xercesc.

Missing asm/bitops.h

x86_64

If /usr/include/asm/bitops.h and its dependant include files are not present then you can copy them from an older Linux release and install them. You will need root privilege for this. The dependant files are: asm/asm-x86_64/bitops.h, asm-i386/bitops.h, linux/config.h

http://bugs.ingres.com/ticket/109#

Fixed in revision 22

gcc_s

If you receive errors like ld: cannot find -lgcc_s

Then download the patch: gcc_s.patch

Apply patch as follows:

  • cd $ING_SRC/tools/port/shell_unix
  • chmod 644 shlibinfo.sh
  • cat <path to file>/gcc_s.patch | patch

The patch command should respond with: Hunk #1 succeeded at 617 (offset -9 lines).

ld: skipping incompatible /usr/lib64/

On SUSE Linux Enterprise Server 10 (x86_64) Patch Level 2 the following error occurred when building 32bit libraries:

Building libcompat.1.so
Extracting objects ...
ld -melf_i386 -shared -o /home/ingres/ingres2006-9.2.0-130-gpl-src/build/lib/lp32/libcompat.1.so *.o -lm -lc -lpthread -ldl -lcrypt -lgcc_s
ld: skipping incompatible /usr/lib64/libm.so when searching for -lm
ld: skipping incompatible /usr/lib64/libm.a when searching for -lm
and so on

In this scenario ld does't seem to respect the -melf_i386 flag. The ld command is part of the binutils package which is at version 2.16 on this system. You can get newer sources at gnu's binutils site, e.g. version 2.17, and use the newly-compiled binary.

To compile and install ld 2.17:

  • tar xzvf binutils-2.17.tar.gz
  • cd binutils-2.17
  • ./configure
  • make
  • make install

Ensure that ld is in the path

  • which ld

should return /usr/local/bin/ld

To continue the Ingres build:

  • cd $ING_SRC
  • jam &> jam.log

Addendum - hanje04

I've not found a SLES 10 machine to test it on but I suspect the problem is caused by not having the 32bit development packages installed. They don't install by default and are not part of the default (64bit) tools.

Personal tools
© 2011 Actian Corporation. All Rights Reserved