Good morning:
Using the changes to the Makefile shown below and copying the
missing library files from <ar_install_dir>/approval/bin, I was able to
compile and link the program driver. It works correctly.
Despite what BMC told me via Maryville, I did not need to upgrade my gcc
compiler.
Thank you, thank you.
Thorin
________________________________
From: Axton [mailto:[email protected]]
Sent: Saturday, August 22, 2009 3:17 AM
Subject: Re: Remedy API and gcc on Redhat Linux
** Glad to hear you got it working; much easier than compiling a
compiler and running into the same problem with the new compiler :)
Axton Grams
The opinions, statements, and/or suggested courses of action expressed
in this E-mail do not necessarily reflect those of BMC Software, Inc.
My voluntary participation in this forum is not intended to convey a
role as a spokesperson, liaison or public relations representative for
BMC Software, Inc.
On Sat, Aug 22, 2009 at 2:50 AM, Conny Martin
<[email protected]> wrote:
**
Axton,
you're right, there is a mismatch. The CFLAGS settings tells gcc
to generate 32-Bit object files. But in LDFLAGS -m32 wasn't set. The
linker is then trying to generate a 64-Bit binary. But libar.so is
definitely a 32-bit binary. The 64 bit version is named libar_lx64.so
Kind Regards Conny
________________________________
Von: Action Request System discussion list(ARSList)
[mailto:[email protected]] Im Auftrag von Axton
Gesendet: Freitag, 21. August 2009 21:36
An: [email protected]
Betreff: Re: Remedy API and gcc on Redhat Linux
** The libraries are provided in both 32-bit and 64-bit on the
non-Windows releases of ARS 7.5.
Page 64 provides additional information.
http://documents.bmc.com/supportu/documents/53/84/95384/95384.pdf
This looks like a mismatch between the 32/64 bit api and the
CFLAGS you are using. See Lyle's message on how to straighten it out
and set the flags properly.
Axton Grams
On Fri, Aug 21, 2009 at 1:40 PM, Conny Martin
<[email protected]> wrote:
**
libar.so is 32 bit-binary. The Makefile provided by BMC
won't work unless you do a little customisation
this one works for me.
------------------------------------------------------------------------
--------------------------------------------
#
# Parameters.
PROGRAM = driver
SOURCES = api.c get.c main.c print.c util.c
OBJECTS = api.o get.o main.o print.o util.o
# Compiler flags.
CC = cc
CFLAGS = -m32 -g -DDEBUG -D_REENTRANT -malign-double
CPPFLAGS = -I../include -I../../include
LDFLAGS = -m32 -L../lib -L../../lib
LDLIBS = -lar -lnsl -lpthread -lncurses -ldl
-licuucbmc -licui18nbmc -licudatabmc
# Standard targets.
all: $(PROGRAM)
objects: $(OBJECTS)
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS)
$(LDLIBS)
clean:
$(RM) $(PROGRAM) $(OBJECTS) core
------------------------------------------------------------------------
-------------------------------------------
There are also some libs missing in
<ar_install_dir>/api/lib. So I copied them from <ar_install_dir>/bin
libicudatabmc.so
libicudatabmc.so.32
libicui18nbmc.so
libicui18nbmc.so.32
libicuucbmc.so
libicuucbmc.so.32
HTH
Kind Regards Conny
________________________________
Von: Action Request System discussion list(ARSList)
[mailto:[email protected]] Im Auftrag von Lyle Taylor
Gesendet: Freitag, 21. August 2009 18:56
An: [email protected]
Betreff: Re: Remedy API and gcc on Redhat Linux
**
In your build directory, run the following command and
send us the output:
file ../../lib/libar.so
Your build options seem to be telling it to build a
32-bit executable, but 75 is 64-bit on Linux. The command above will
verify whether libar.so is a 32 or 64-bit binary. If it's 64-bit, then
change -m32 to -m64 in your Makefile, do a make clean and then try
building it again.
Lyle
_Platinum Sponsor: [email protected] ARSlist: "Where the
Answers Are"_
_Platinum Sponsor: [email protected] ARSlist: "Where the Answers
Are"_
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:[email protected] ARSlist: "Where the Answers Are"