[llvm-commits] [vmkit] r48829 - in /vmkit/trunk: configure.ac include/mvm/JIT.h lib/JnJVM/Classpath/Makefile.am lib/JnJVM/Makefile.am lib/JnJVM/VMCore/JavaJIT.cpp lib/JnJVM/VMCore/Makefile.am lib/Mvm/Allocator/Makefile.am lib/Mvm/Disassembler.cc lib/Mvm/GCMmap2/Makefile.am lib/Mvm/Makefile.am lib/N3/Makefile.am lib/N3/VMCore/Makefile.am

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Mar 26 10:06:32 PDT 2008


Author: geoffray
Date: Wed Mar 26 12:06:31 2008
New Revision: 48829

URL: http://llvm.org/viewvc/llvm-project?rev=48829&view=rev
Log:
Allow VMKit to be compiled without libopcodes (for MacOSX)



Added:
    vmkit/trunk/lib/Mvm/Disassembler.cc
Modified:
    vmkit/trunk/configure.ac
    vmkit/trunk/include/mvm/JIT.h
    vmkit/trunk/lib/JnJVM/Classpath/Makefile.am
    vmkit/trunk/lib/JnJVM/Makefile.am
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/Makefile.am
    vmkit/trunk/lib/Mvm/Allocator/Makefile.am
    vmkit/trunk/lib/Mvm/GCMmap2/Makefile.am
    vmkit/trunk/lib/Mvm/Makefile.am
    vmkit/trunk/lib/N3/Makefile.am
    vmkit/trunk/lib/N3/VMCore/Makefile.am

Modified: vmkit/trunk/configure.ac
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/configure.ac?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/configure.ac (original)
+++ vmkit/trunk/configure.ac Wed Mar 26 12:06:31 2008
@@ -87,50 +87,60 @@
 dnl **************************************************************************
 AC_HEADER_STDC
 
-AC_ARG_WITH(readline,
-  [AS_HELP_STRING([--without-readline],
-    [disable readline support])],
-    [with_readline=$enableval],[with_readline=yes]
-)
-
-AS_IF([test "x$with_readline" = xyes],
-  [AC_CHECK_HEADER([readline/readline.h],
-	  [AC_DEFINE(HAVE_READLINE_H,1,[readline found])],
-	  [AC_MSG_WARN(readline NOT found)])
-    AC_CHECK_LIB(readline, history_truncate_file, [],
-     [AC_MSG_ERROR([You need to install readline version 5.])])
-    ]
-)
-
-AC_ARG_WITH(bare,
-  [AS_HELP_STRING([--with-bare], [bare VVMos support])],
-    [with_bare=$enableval],[with_bare=no]
-)
-
-bare_header=""
-AM_CONDITIONAL([BARE], [test "x$vvmthreadtype" != "xno"])
-if test "x$with_bare" != xno; then
-  AC_DEFINE([BARE], [1], [bare VVMos support])
-  bare_header=-I$PWD/../bare/include/
-fi
-
-AC_SUBST([bare_header])
-AC_SUBST([mksyms])
-AC_SUBST([rdynamic])
-AC_SUBST([LLVMDYLIB])
-
-
 dnl **************************************************************************
-dnl Checks for typedefs, structures, and compiler characteristics.
+dnl Checks for header files.
 dnl **************************************************************************
-AC_C_CONST
+AC_HEADER_STDC
+
+case $target_os in
+  *linux*)
+  dnl libiberty, libopcode and libbfd are part of binutils
+  AC_CHECK_HEADER([bfd.h], [], \
+    AC_MSG_ERROR([You need to install the binutils devel package (bfd.h).])
+  )
+  AC_CHECK_HEADER([dis-asm.h], [], \
+    AC_MSG_ERROR([You need to install the binutils devel package (dis-asm.h).])
+  )
+  ;;
+esac
+
+AC_CHECK_HEADER([zlib.h], [], \
+  AC_MSG_ERROR([You need to install the zlib devel package (zlib.h).])
+)
 
 dnl **************************************************************************
-dnl
-dnl **************************************************************************
-AC_LIBTOOL_DLOPEN
-AM_PROG_LIBTOOL
+dnl Checks for libraries    
+dnl **************************************************************************
+case $target_os in
+  *darwin*)
+    rdynamic=""
+    ;;
+  *linux*)
+    AC_CHECK_LIB(iberty, xexit, [], \
+      [AC_MSG_ERROR([You need to install the binutils package (iberty).])]
+    )
+    AC_CHECK_LIB(bfd, bfd_get_arch, [], \
+      [AC_MSG_ERROR([You need to install the binutils package (bfd).])],
+    -liberty
+    )
+    AC_CHECK_LIB(opcodes, disassembler, [], \
+      [AC_MSG_ERROR([You need to install the binutils package (opcodes).])],
+    -lbfd -liberty
+    )
+    
+    rdynamic="-rdynamic"
+    AC_DEFINE([HAVE_DISASSEMBLER], [1], [Using libopcodes])
+
+    ;;
+  *) AC_MSG_ERROR([$target_os target is not supported.]);;
+esac
+
+AC_CHECK_LIB(z, inflate, [], \
+  [AC_MSG_ERROR([You need to install the zlib package (z).])]
+)
 
+AC_SUBST([rdynamic])
+AC_SUBST([LLVMDYLIB])
 
 dnl **************************************************************************
 dnl VVM thread type
@@ -144,7 +154,7 @@
 AS_IF([test "x$vvmthreadtype" != "xno"],
   [AC_CHECK_HEADER([pthread.h],,
     [AC_MSG_WARN(phtread include NOT found)])
-  AC_CHECK_LIB(pthread, pthread_create, [],
+  AC_CHECK_LIB(pthread, pthread_create, [], 
      [AC_MSG_ERROR([pthread library not found])])
   ]
 )
@@ -157,12 +167,25 @@
 AC_SUBST([vvmthreadtype])
 GCTHREAD_SUBDIRS="$GCTHREAD_SUBDIRS $vvmthreadtype-thread"
 
+
+dnl **************************************************************************
+dnl Checks for typedefs, structures, and compiler characteristics.
+dnl **************************************************************************
+AC_C_CONST
+
+dnl **************************************************************************
+dnl
+dnl **************************************************************************
+AC_LIBTOOL_DLOPEN
+AM_PROG_LIBTOOL
+
+
 dnl **************************************************************************
 dnl VVM GC type 
 dnl **************************************************************************
 AC_ARG_WITH(vvm-gc-type,
        [AS_HELP_STRING(--with-vvm-gc-type=something,
-           [VVM GC type ('gen2', 'mmap2' or 'simple2')])],
+           [VVM GC type ('mmap2' or 'boehm')])],
        [[vvmgctype=$withval]],
        [[ echo Using mmap2 as vvm gc type.
         	vvmgctype=mmap2

Modified: vmkit/trunk/include/mvm/JIT.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/JIT.h?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/include/mvm/JIT.h (original)
+++ vmkit/trunk/include/mvm/JIT.h Wed Mar 26 12:06:31 2008
@@ -156,6 +156,7 @@
 
 extern void protectConstants();
 extern void unprotectConstants();
+extern int disassemble(unsigned int* addr);
 
 
 } // end namespace jit

Modified: vmkit/trunk/lib/JnJVM/Classpath/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Makefile.am (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Makefile.am Wed Mar 26 12:06:31 2008
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.6 2008/03/21 11:12:38 varth Exp $
 lib_LTLIBRARIES = libClasspath.la
 
 THREADDIR=../../Mvm/CommonThread
@@ -8,7 +7,6 @@
 	    -I../VMCore
 
 PREFIX=@prefix@
-LIBSUVM=$(LIBLLVM) $(LIBGC) $(LIBALLOC) $(LIBTHREAD)
 
 libClasspath_la_SOURCES = \
 	ClasspathVMSystem.cpp ClasspathVMSystem.h Classpath.cpp \

Modified: vmkit/trunk/lib/JnJVM/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Makefile.am (original)
+++ vmkit/trunk/lib/JnJVM/Makefile.am Wed Mar 26 12:06:31 2008
@@ -12,14 +12,13 @@
 LIBTHREAD=$(THREADDIR)/libuvm_ at vvmthreadtype@_thread.a
 LIBALLOC=$(ALLOCDIR)/libuvm_alloc.a
 LIBGC=$(GCDIR)/libuvm_gc_ at vvmgctype@.a @GC_LIBS@
-PREFIX=@prefix@
-LIBSUVM=$(LIBLLVM) $(LIBGC) $(LIBALLOC) $(LIBTHREAD)
+LIBSUVM=$(LIBGC) $(LIBALLOC) $(LIBTHREAD)
 
 main_SOURCES = ../Mvm/Object.cc ../Mvm/Sigsegv.cc Main.cpp ../Mvm/MvmMemoryManager.cpp ../Mvm/JIT.cc ../Mvm/EscapeAnalysis.cpp
 
 
 main_CXXFLAGS = $(libJnJVM_la_CXXFLAGS)
-main_LDADD = VMCore/.libs/libJnJVM.a Classpath/.libs/libClasspath.a $(LIBSUVM) @LLVMDYLIB@ -lopcodes -lbfd -liberty -lz
+main_LDADD = VMCore/.libs/libJnJVM.a Classpath/.libs/libClasspath.a $(LIBSUVM) @LLVMDYLIB@
 main_LDFLAGS = @rdynamic@
 
 libjnjvm.la:

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Wed Mar 26 12:06:31 2008
@@ -256,71 +256,6 @@
   return llvmFunction;
 }
 
-#if defined __PPC__
-extern "C"
-{
-# include <dis-asm.h>
-# include <bfd.h>
-};
-
-
-
-static struct disassemble_info  info;
-static int      initialised= 0;  
-
-// this is the only function exported from this file
-
-extern "C" int disassemble(unsigned int *addr)
-{
-  
-  if (!initialised)
-    {   
-      INIT_DISASSEMBLE_INFO(info, stdout, fprintf);
-      info.flavour=   bfd_target_elf_flavour;
-      info.arch=    bfd_arch_powerpc;
-      info.mach=    bfd_mach_ppc_750; // generic(ish) == PPC G3
-      info.endian=    BFD_ENDIAN_BIG;
-      info.buffer_length= 65536;
-    }   
-  info.buffer=     (bfd_byte *)addr;
-  info.buffer_vma= (bfd_vma)(long)addr;
-  return print_insn_big_powerpc((bfd_vma)(long)addr, &info);
-  
-}
-
-#else
-extern "C"
-{
-# include <bfd.h>	// bfd types
-# include <dis-asm.h>	// disassemble_info
-  int print_insn_i386_att(bfd_vma, disassemble_info *);
-};
-
-
-static struct disassemble_info	info;
-static int			initialised= 0;
-
-// this is the only function exported from this file
-
-extern "C" int disassemble(unsigned int *addr)
-{
-  if (!initialised)
-    {
-      INIT_DISASSEMBLE_INFO(info, stdout, fprintf);
-      info.flavour=	  bfd_target_elf_flavour;
-      info.arch=	  bfd_arch_i386;
-      info.mach=	  bfd_mach_i386_i386;
-      info.endian=	  BFD_ENDIAN_LITTLE;
-      info.buffer_length= 65536;
-    }
-  info.buffer=	   (bfd_byte *)addr;
-  info.buffer_vma= (bfd_vma)(long)addr;
-  return print_insn_i386_att((bfd_vma)(long)addr, &info);
-}
-
-#endif
-
-
 void JavaJIT::beginSynchronize() {
   std::vector<Value*> argsSync;
   if (isVirtual(compilingMethod->access)) {
@@ -591,7 +526,7 @@
     void* base = res;
     while (base <  (void*)((char*)res + ((mvm::Code*)res)->objectSize())) {
       printf("%08x\t", (unsigned)base);
-      int n= disassemble((unsigned int *)base);
+      int n= mvm::jit::disassemble((unsigned int *)base);
       printf("\n");
       base= ((void *)((char *)base + n));
     }

Modified: vmkit/trunk/lib/JnJVM/VMCore/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Makefile.am (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Makefile.am Wed Mar 26 12:06:31 2008
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.7 2008/03/21 11:12:38 varth Exp $
 EXTRA_DIST = OpcodeNames.def
 lib_LTLIBRARIES = libJnJVM.la
 

Modified: vmkit/trunk/lib/Mvm/Allocator/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Allocator/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Allocator/Makefile.am (original)
+++ vmkit/trunk/lib/Mvm/Allocator/Makefile.am Wed Mar 26 12:06:31 2008
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.2 2008/03/21 11:12:38 varth Exp $
 noinst_LIBRARIES = libuvm_alloc.a
 noinst_PROGRAMS = mainuvm_alloc
 

Added: vmkit/trunk/lib/Mvm/Disassembler.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Disassembler.cc?rev=48829&view=auto

==============================================================================
--- vmkit/trunk/lib/Mvm/Disassembler.cc (added)
+++ vmkit/trunk/lib/Mvm/Disassembler.cc Wed Mar 26 12:06:31 2008
@@ -0,0 +1,91 @@
+//===--------- Disassembler.cc - Intefarce to disassembler ----------------===//
+//
+//                      Micro Virtual Machine
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "mvm/JIT.h"
+
+#ifdef HAVE_DISASSEMBLER
+
+#if defined(__PPC__)
+extern "C"
+{
+# include <dis-asm.h>
+# include <bfd.h>
+}
+
+
+
+static struct disassemble_info  info;
+static int      initialised= 0;  
+
+// this is the only function exported from this file
+
+int mvm::jit::disassemble(unsigned int *addr)
+{
+  
+  if (!initialised)
+    {   
+      INIT_DISASSEMBLE_INFO(info, stdout, fprintf);
+      info.flavour=   bfd_target_elf_flavour;
+      info.arch=    bfd_arch_powerpc;
+      info.mach=    bfd_mach_ppc_750; // generic(ish) == PPC G3
+      info.endian=    BFD_ENDIAN_BIG;
+      info.buffer_length= 65536;
+    }   
+  info.buffer=     (bfd_byte *)addr;
+  info.buffer_vma= (bfd_vma)(long)addr;
+  return print_insn_big_powerpc((bfd_vma)(long)addr, &info);
+  
+}
+
+#elif defined(__i386__)
+extern "C"
+{
+# include <bfd.h>	// bfd types
+# include <dis-asm.h>	// disassemble_info
+  int print_insn_i386_att(bfd_vma, disassemble_info *);
+};
+
+
+static struct disassemble_info	info;
+static int			initialised= 0;
+
+
+int mvm::jit::disassemble(unsigned int *addr)
+{
+  if (!initialised)
+    {
+      INIT_DISASSEMBLE_INFO(info, stdout, fprintf);
+      info.flavour=	  bfd_target_elf_flavour;
+      info.arch=	  bfd_arch_i386;
+      info.mach=	  bfd_mach_i386_i386;
+      info.endian=	  BFD_ENDIAN_LITTLE;
+      info.buffer_length= 65536;
+    }
+  info.buffer=	   (bfd_byte *)addr;
+  info.buffer_vma= (bfd_vma)(long)addr;
+  return print_insn_i386_att((bfd_vma)(long)addr, &info);
+}
+
+#else
+
+int mvm::jit::disassemble(unsigned int* addr) {
+  return 0;
+}
+
+#endif
+
+#else
+
+int mvm::jit::disassemble(unsigned int* addr) {
+  return 0;
+}
+
+#endif
+
+

Modified: vmkit/trunk/lib/Mvm/GCMmap2/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/GCMmap2/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/GCMmap2/Makefile.am (original)
+++ vmkit/trunk/lib/Mvm/GCMmap2/Makefile.am Wed Mar 26 12:06:31 2008
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.3 2008/03/21 16:25:31 varth Exp $
 noinst_LIBRARIES = libuvm_gc_mmap2.a
 noinst_PROGRAMS = mainuvm_gc_mmap2
 

Modified: vmkit/trunk/lib/Mvm/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Makefile.am (original)
+++ vmkit/trunk/lib/Mvm/Makefile.am Wed Mar 26 12:06:31 2008
@@ -7,17 +7,16 @@
 THREADDIR=CommonThread
 ALLOCDIR=Allocator
 GCDIR=GCMmap2
-INCLUDEDIRS=-I at srcdir@/$(THREADDIR) -I at srcdir@/$(ALLOCDIR) -I at srcdir@/$(GCDIR)\
-	    @bare_header@
+INCLUDEDIRS=-I at srcdir@/$(THREADDIR) -I at srcdir@/$(ALLOCDIR) -I at srcdir@/$(GCDIR)
 
 LIBTHREAD=$(THREADDIR)/libuvm_ at vvmthreadtype@_thread.a
 LIBALLOC=$(ALLOCDIR)/libuvm_alloc.a
 LIBGC=$(GCDIR)/libuvm_gc_ at vvmgctype@.a @GC_LIBS@
 MAIN_O=main-main.o
-LIBSUVM=$(LIBLLVM) $(LIBGC) $(LIBALLOC) $(LIBTHREAD)
+LIBSUVM=$(LIBGC) $(LIBALLOC) $(LIBTHREAD)
 PREFIX=@prefix@
 
-main_SOURCES = Main.cc Object.cc Sigsegv.cc JIT.cc CommandLine.cpp CommandLine.h MvmMemoryManager.h MvmMemoryManager.cpp EscapeAnalysis.cpp
+main_SOURCES = Main.cc Object.cc Sigsegv.cc JIT.cc CommandLine.cpp CommandLine.h MvmMemoryManager.h MvmMemoryManager.cpp EscapeAnalysis.cpp Disassembler.cc
 main_CXXFLAGS = $(INCLUDEDIRS) -DPREFIX=\"$(PREFIX)\" -W -Wall -ansi -Wno-unused-parameter -pedantic -Wno-long-long -fno-omit-frame-pointer -O2 -g
 main_LDFLAGS=@rdynamic@
-main_LDADD = $(LIBSUVM) @LLVMDYLIB@ -lopcodes -lbfd -liberty
+main_LDADD = $(LIBSUVM) @LLVMDYLIB@

Modified: vmkit/trunk/lib/N3/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/Makefile.am (original)
+++ vmkit/trunk/lib/N3/Makefile.am Wed Mar 26 12:06:31 2008
@@ -10,11 +10,10 @@
 LIBALLOC=$(ALLOCDIR)/libuvm_alloc.a
 LIBGC=$(GCDIR)/libuvm_gc_ at vvmgctype@.a @GC_LIBS@
 PREFIX=@prefix@
-LIBSUVM=$(LIBLLVM) $(LIBGC) $(LIBALLOC) $(LIBTHREAD)
+LIBSUVM=$(LIBGC) $(LIBALLOC) $(LIBTHREAD)
 
 main_SOURCES = ../Mvm/Object.cc ../Mvm/Sigsegv.cc Main.cpp ../Mvm/MvmMemoryManager.cpp ../Mvm/JIT.cc ../Mvm/EscapeAnalysis.cpp
 
-
-main_CXXFLAGS = $(libJnJVM_la_CXXFLAGS)
-main_LDADD = VMCore/.libs/libN3.a $(LIBSUVM) @LLVMDYLIB@ -lopcodes -lbfd -liberty
+main_CXXFLAGS = $(INCLUDEDIRS) -DPREFIX=\"$(PREFIX)\" -W -Wall -ansi -Wno-unused-parameter -Wno-long-long -Wno-unused-function -fno-omit-frame-pointer -g -Werror -O2
+main_LDADD = VMCore/.libs/libN3.a $(LIBSUVM) @LLVMDYLIB@
 main_LDFLAGS = @rdynamic@

Modified: vmkit/trunk/lib/N3/VMCore/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Makefile.am?rev=48829&r1=48828&r2=48829&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Makefile.am (original)
+++ vmkit/trunk/lib/N3/VMCore/Makefile.am Wed Mar 26 12:06:31 2008
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.4 2008/03/21 11:12:39 varth Exp $
 EXTRA_DIST = SignatureNames.def OpcodeNames.def
 lib_LTLIBRARIES = libN3.la
 





More information about the llvm-commits mailing list