This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Building a shared object subroutine on Linux 32bit

I am attempting to build and load the standard usrsub.c library as delivered with the rmcobol development system.

When i execute the built and attempt to run a test program it fails;


$ make libusr


make[1]: Entering directory '/home/administrator/comms'
gcc -m32 -D_GNU_SOURCE -DLINUX -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -fPIC -c -o usrsub.o usrsub.c
make[1]: Leaving directory '/home/administrator/comms'
ld -melf_i386 -shared -nostartfiles -o libusr.so usrsub.o
mkdir: cannot create directory ‘rmcobolso’: File exists
make: [makefile:41: libusr] Error 1 (ignored)

$ runcobol test.cob -L=rmcobolso/libusr.so

RM/COBOL Runtime - Version 12.19 for Linux Intel 32-Bit.
RM/COBOL Development System issued to Victor'S Three-D, Inc.
Configured for one user.
(c) Copyright 1985-2022 Micro Focus or one of its affiliates.
Registration Number: 6E-1000-94548-0001

/home/administrator/comms/rmcobolso/libusr.so: ELF load command alignment not page-aligned

COBOL procedure error 213 (library not found). Error processing library rmcobolso/libusr.so.
COBOL procedure error 214 (library not valid). Error starting application tests.cob.

Any help is very much appreciated.

Thanks