Hi all,

I was trying to compile luajava-1.1 on a 64-bit Ubuntu server (Version 9.10) installation, and got the following output:

> make
/usr/lib/jvm/java-6-sun/bin/javadoc -public -classpath src/java/ -quiet -d "doc/us/API" src/java/org/keplerproject/luajava/JavaFunction.java src/java/org/keplerproject/luajava/LuaException.java src/java/org/keplerproject/luajava/LuaInvocationHandler.java src/java/org/keplerproject/luajava/LuaObject.java src/java/org/keplerproject/luajava/LuaState.java src/java/org/keplerproject/luajava/LuaStateFactory.java src/java/org/keplerproject/luajava/Console.java export MACOSX_DEPLOYMENT_TARGET=10.3; gcc -m64 -shared -o libluajava-1.1.so src/c/luajava.o /usr/lib/liblua5.1.a /usr/bin/ld: /usr/lib/liblua5.1.a(lapi.o): relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object; recompile with -fPIC
/usr/lib/liblua5.1.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libluajava-1.1.so] Error 1

I attached the Makefile and the config file I am using.

Could someone please help me with this?

Thanks in advance.

--zlatko

Some additional information that might be useful:

> uname -a
Linux Sanoyea 2.6.31-20-server #58-Ubuntu SMP Fri Mar 12 05:40:05 UTC 2010 x86_64 GNU/Linux

> dpkg --get-selections | grep gcc
  gcc                                             install
  gcc-4.4                                         install
  gcc-4.4-base                                    install
  gccxml                                          install
  libgcc1                                         install

> dpkg --get-selections | grep lua
   liblua5.1-0                                     install
   liblua5.1-0-dev                                 install
   lua5.1                                          install

#
# Makefile for LuaJava Linux Distribution
#

include ./config

CLASSES     = \
        src/java/org/keplerproject/luajava/CPtr.class \
        src/java/org/keplerproject/luajava/JavaFunction.class \
        src/java/org/keplerproject/luajava/LuaException.class \
        src/java/org/keplerproject/luajava/LuaInvocationHandler.class \
        src/java/org/keplerproject/luajava/LuaJavaAPI.class \
        src/java/org/keplerproject/luajava/LuaObject.class \
        src/java/org/keplerproject/luajava/LuaState.class \
        src/java/org/keplerproject/luajava/LuaStateFactory.class \
        src/java/org/keplerproject/luajava/Console.class

DOC_CLASSES     = \
        src/java/org/keplerproject/luajava/JavaFunction.java \
        src/java/org/keplerproject/luajava/LuaException.java \
        src/java/org/keplerproject/luajava/LuaInvocationHandler.java \
        src/java/org/keplerproject/luajava/LuaObject.java \
        src/java/org/keplerproject/luajava/LuaState.java \
        src/java/org/keplerproject/luajava/LuaStateFactory.java \
        src/java/org/keplerproject/luajava/Console.java

OBJS        = src/c/luajava.o
.SUFFIXES: .java .class

#
# Targets
#
run: build
        @echo ------------------
        @echo Build Complete
        @echo ------------------

build: checkjdk $(JAR_FILE) apidoc $(SO_FILE)

#
# Build .class files.
#
.java.class:
        $(JDK)/bin/javac -sourcepath ./src/java $*.java

#
# Create the JAR
#
$(JAR_FILE): $(CLASSES)
        cd src/java; \
        $(JDK)/bin/jar cvf ../../$(JAR_FILE) org/keplerproject/luajava/*.class; 
\
        cd ../..;
  
#
# Create the API Documentation
#
apidoc:
        $(JDK)/bin/javadoc -public -classpath src/java/ -quiet -d "doc/us/API" 
$(DOC_CLASSES)

#
# Build .c files.
#
$(SO_FILE): $(OBJS)
        export MACOSX_DEPLOYMENT_TARGET=10.3; $(CC) $(LIB_OPTION) -o $@ $? 
$(LIB_LUA)

src/c/luajava.c: src/c/luajava.h

src/c/luajava.h:
        $(JDK)/bin/javah -o src/c/luajava.h -classpath "$(JAR_FILE)" 
org.keplerproject.luajava.LuaState
  

## regras implicitas para compilacao

$(OBJDIR)/%.o:  %.c
        $(CC) -c $(CFLAGS) -o $@ $<

#
# Check that the user has a valid JDK install.  This will cause a
# premature death if JDK is not defined.
#
checkjdk: $(JDK)/bin/java

#
# Cleanliness.
#
clean:
        rm -f $(JAR_FILE)
        rm -f $(SO_FILE)
        rm -rf doc/us/API
        rm -f src/java/org/keplerproject/luajava/*.class src/c/*.o 
src/c/luajava.h
        rm -f $(TAR_FILE) $(ZIP_FILE)

dist:   dist_dir
        tar -czf $(TAR_FILE) --exclude \*CVS\* --exclude *.class --exclude *.o 
--exclude *.h --exclude $(TAR_FILE) --exclude $(ZIP_FILE) $(DIST_DIR)
        zip -qr $(ZIP_FILE) $(DIST_DIR)/* -x ./\*CVS\* *.class *.o *.h 
./$(TAR_FILE) ./$(ZIP_FILE)

dist_dir:       apidoc
        mkdir -p $(DIST_DIR)
        cp -R src $(DIST_DIR)
        cp -R doc $(DIST_DIR)
        cp -R test $(DIST_DIR)
        cp config License.txt Makefile config.win Makefile.win $(DIST_DIR)

#############################################################
#Linux/BSD/Mac
LUA_DIR= /usr/bin/lua5.1
LUA_LIBDIR= /usr/lib
LUA_INCLUDES= /usr/include/lua5.1
JDK= $(JAVA_HOME)
# For Mac OS, comment the above line and uncomment this one
#JDK=/Library/Java/Home

# Full path to Lua static library
LIB_LUA=$(LUA_LIBDIR)/liblua5.1.a

#Linux/BSD
LIB_EXT= .so
#Mac OS
#LIB_EXT= .jnilib

LIB_PREFIX= lib

#Linux/BSD
LIB_OPTION= -m64 -shared
#Mac OS
#LIB_OPTION= -dynamiclib -all_load

## On FreeBSD and Mac OS systems, the following line should be commented
DLLIB= -ldl

WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes 
-Wnested-externs -Wshadow -Wwrite-strings
INCS= -I$(JDK)/include -I$(JDK)/include/linux -I$(LUA_INCLUDES)
CFLAGS= -m64 $(WARN) $(INCS)

CC= gcc


#########################################################
VERSION= 1.1
PKG= luajava-$(VERSION)
TAR_FILE= $(PKG).tar.gz
ZIP_FILE= $(PKG).zip
JAR_FILE= $(PKG).jar
SO_FILE= $(LIB_PREFIX)$(PKG)$(LIB_EXT)
DIST_DIR= $(PKG)

# $Id: config,v 1.12 2006/12/22 14:06:40 thiago Exp $
_______________________________________________
Kepler-Project mailing list
[email protected]
http://lists.luaforge.net/cgi-bin/mailman/listinfo/kepler-project
http://www.keplerproject.org/

Reply via email to