Permalink
Browse files

Merge branch 'master' into bs

  • Loading branch information...
2 parents a1249b9 + 7e65c6f commit 9ff82b38d87ca4a21ee685c329b6e8bc48acbeb4 @jnthn jnthn committed Feb 29, 2012
Showing with 497 additions and 110 deletions.
  1. +10 −4 3rdparty/dyncall/ChangeLog
  2. +1 −1 3rdparty/dyncall/LICENSE
  3. +1 −1 3rdparty/dyncall/License.txt
  4. +5 −1 3rdparty/dyncall/Makefile.embedded
  5. +1 −1 3rdparty/dyncall/README.Minix
  6. +4 −0 3rdparty/dyncall/README.Solaris
  7. +19 −1 3rdparty/dyncall/README.embedded
  8. +58 −0 3rdparty/dyncall/README.iOS
  9. +9 −10 3rdparty/dyncall/ToDo
  10. +2 −2 3rdparty/dyncall/buildsys/gmake/epilog.gmake
  11. +19 −9 3rdparty/dyncall/buildsys/gmake/install.gmake
  12. +7 −5 3rdparty/dyncall/buildsys/gmake/tool/gcc.gmake
  13. +22 −0 3rdparty/dyncall/buildsys/gmake/tool/man.gmake
  14. +5 −2 3rdparty/dyncall/buildsys/vs2005/dyncall/dyncall.vcproj
  15. +3 −4 3rdparty/dyncall/configure
  16. +2 −0 3rdparty/dyncall/configure.bat
  17. +2 −2 3rdparty/dyncall/configure2
  18. +1 −0 3rdparty/dyncall/dyncall/GNUmakefile
  19. +9 −1 3rdparty/dyncall/dyncall/Makefile.embedded
  20. +186 −0 3rdparty/dyncall/dyncall/dyncall.3
  21. +6 −4 3rdparty/dyncall/dyncall/dyncall_call.S
  22. +4 −1 3rdparty/dyncall/dyncall/dyncall_callvm_arm32_arm.c
  23. +1 −0 3rdparty/dyncall/dyncall/dyncall_callvm_x86.c
  24. +9 −3 3rdparty/dyncall/dyncallback/Makefile.embedded
  25. +1 −1 3rdparty/dyncall/dyncallback/dyncall_args.h
  26. +2 −2 3rdparty/dyncall/dyncallback/dyncall_callback.h
  27. +26 −26 3rdparty/dyncall/dyncallback/dyncall_callback_arch.S
  28. +7 −1 3rdparty/dyncall/dynload/Makefile.embedded
  29. +37 −16 3rdparty/dyncall/dynload/dynload_syms_elf.c
  30. +16 −2 Configure.pl
  31. +1 −1 VERSION
  32. +5 −2 src/HLL/Compiler.pm
  33. +10 −5 src/NQP/Actions.pm
  34. +1 −0 src/NQP/Grammar.pm
  35. +4 −1 t/nqp/23-named-args.t
  36. +1 −1 tools/build/PARROT_REVISION
@@ -1,10 +1,11 @@
This file lists big/noteworthy changes, only...
-Version 0.7 (upcoming)
+Version 0.7
architecture:
o added subproject: portasm - portable (GNU AS,+Apple and MASM) assembly framework
- o added support for sparc (32-bit) (tested on linux/debian)
- o added support for sparc (64-bit) (tested on linux/debian, buggy on openbsd)
+ o added subproject: autovar - predefined macro framework (was dyncall_macros.h)
+ o added support for sparc (32-bit) (tested on linux/debian,openbsd,solaris)
+ o added support for sparc (64-bit) (tested on linux/debian,openbsd,solaris)
o added support for Solaris and SunPro compiler for i386, x86_64, sparc and sparc64
o improved auto-detection via preprocessor defines
dyncall updates:
@@ -20,7 +21,7 @@ dyncall updates:
o bug fix for ppc32/sysv: ellipsis calls work now
o updated API, introduced DC_CALL_C_ELLIPSIS_VARARGS
o changed interface: dcMode does not reset internally anymore
- dyncallback updates:
+dyncallback updates:
o uses portasm for x86,x64
o added Solaris/x86/sunpro port (stable)
o added Minix port (unstable)
@@ -31,17 +32,21 @@ dynload updates:
o removed Dbghelf.lib dependency
o bug fixes for cygwin/x86
o fixes for beos/haiku
+ o no dependencies to libdyncall sources.
buildsys additions:
o added zero-config (BSD,GNU,SUN) make files (Makefile.embedded)
o added in/out-of-source configure2 w/ (BSD,GNU) make files (Makefile.generic')
o added bootstrap lua script (download/build)
o Nmakefile: more tests included (resolve_self)
o improved cross-compilation for iOS (upgrade to 4.3 sdk)
o darwin 8.0 support
+ o added 'install' support for Makefile.embedded
buildsys/gmake updates:
o added support for msvc/x64 tool-chain
o default settings for build-dir changed to '.'
o cleanup: removed top-level Make{Prolog,Epilog,Rules} files and updated all sub-projects and tests
+ o added support for DESTDIR staging installation
+ o added support for manual page installation
buildsys/cmake updates:
o updated find module scripts (see cmake/Modules)
o added support for using dyncall as sub-project (via *Config.cmake files)
@@ -50,6 +55,7 @@ buildsys/cmake updates:
o fixes for CPack
o fixes for universal builds on Mac OS X
o supports SunPro with *.S files.
+ o added experimental 'dynMake' portable make-based build-system (not stable, yet)
documentation updates:
o added dyncallback documentation
o updated dyncall documentation
@@ -1,4 +1,4 @@
-Copyright (c) 2007-2011 Daniel Adler <dadler@uni-goettingen.de>,
+Copyright (c) 2007-2012 Daniel Adler <dadler@uni-goettingen.de>,
Tassilo Philipp <tphilipp@potion-studios.com>
Permission to use, copy, modify, and distribute this software for any
@@ -1,4 +1,4 @@
-Copyright (c) 2007-2010 Daniel Adler <dadler@uni-goettingen.de>,
+Copyright (c) 2007-2012 Daniel Adler <dadler@uni-goettingen.de>,
Tassilo Philipp <tphilipp@potion-studios.com>
Permission to use, copy, modify, and distribute this software for any
@@ -1,6 +1,5 @@
MAKEFILE = Makefile.embedded
MAKE_CMD = ${MAKE} -f ${MAKEFILE}
-.PHONY: all tests clean bsd linux sun sun-64bit sun-gcc sun-gcc-64bit
all:
cd dynload ; ${MAKE_CMD}
cd dyncall ; ${MAKE_CMD}
@@ -12,6 +11,10 @@ clean:
cd dyncall ; ${MAKE_CMD} clean
cd dyncallback ; ${MAKE_CMD} clean
cd test ; ${MAKE_CMD} clean
+install:
+ cd dynload ; ${MAKE_CMD} install
+ cd dyncall ; ${MAKE_CMD} install
+ cd dyncallback ; ${MAKE_CMD} install
bsd:
${MAKE_CMD} all
linux:
@@ -34,3 +37,4 @@ sun-gcc:
sun-gcc-64bit:
CC=gcc CFLAGS="${CFLAGS} -m64" ASFLAGS="${ASFLAGS} -m64" ${MAKE_CMD} all
+.PHONY: all tests clean install bsd linux linux64 minix-gcc osx osx-universal sun sun-64bit sun-gcc sun-gcc-64bit
@@ -19,7 +19,7 @@ $ sh buildsys/scripts/batch-build-minix.sh
Notes
-----
-As Minix as no dynamic linker, the default '-fPIC' CFLAGS need to be cleared,
+As Minix has no dynamic linker, the default '-fPIC' CFLAGS need to be cleared,
which does the batch-build script setting CFLAGs for dyncall and dyncallback
explicitly.
@@ -53,6 +53,10 @@ Build with CMake, Sun make and SunPro for sparc64
$ cmake -DCMAKE_C_FLAGS=-m64 -DCMAKE_ASM_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64 .
$ make
+Installation
+------------
+ $ make -f Makefile.embedded PREFIX=<some/prefix> install
+
Tested Platforms
----------------
@@ -18,11 +18,21 @@ Building the tests:
-------------------
$ cd test ; make -f Makefile.embedded <variant>
+Installation:
+-------------
+$ make -f Makefile.embedded PREFIX=/usr/local install
+
+Installation with support for DESTDIR:
+--------------------------------------
+$ make -f Makefile.embedded DESTDIR=/tmp/staging PREFIX=/usr/local install
+
+
Available variants:
-------------------
bsd Free/Net/Open/DragonFly/Mir BSD
linux Linux
-macosx
+osx Mac OS X
+osx-universal Mac OS X universal binaries (i386,x86_64 and ppc)
sun SunOS and Sun Pro compiler
sun-64bit SunOS and Sun Pro compiler for sparc64(? amd64)
sun-gcc SunOS and GCC compiler
@@ -60,4 +70,12 @@ are Assembly files which are preprocessed by the C Preprocessor.
This feature is available by GCC and SunPro compilers.
+Limitations
+-----------
+
+Mac OS X universal static libraries require to use
+
+'libtool -static -o libname.a obj1.o obj2.o ...' instead of 'ar cru libname.a obj1.o obj2.o'.
+We use predefined variables AR and ARFLAGS.
+The variant osx-universal uses AR=libtool.
@@ -0,0 +1,58 @@
+DynCall for apple's iOS platforms (iPod touch, iPhone, iPad)
+
+
+Environment Setup for Cross-Compilation using iPhone SDK:
+
+ $ source buildsys/scripts/setenv-sdk-ios.sh
+
+
+Package Configuration
+
+ $ ./configure --target-iphoneos --with-iphonesdk=3.2
+
+
+Building
+
+ $ make
+
+
+Details:
+
+Useful configure switches:
+
+ --target-iphoneos
+
+ --with-iphoensdk=<version> (tested with 2.0 up to 4.0)
+
+ --tool-gcc (default)
+ --tool-llvm-gcc
+
+ --target-arm32-arm
+ --target-arm32-thumb
+ --target-universal
+
+
+Supported Tool-chains
+
+ gcc and llvm-gcc
+
+
+Supported SDKs
+
+ SDKs starting with 2.0 up to 4.0 have been tested.
+
+
+Bugs
+
+ No armv7 support.
+
+
+Building with Makefile.generic ..
+
+ $ source buildsys/scripts/setenv-sdk-ios.sh
+ $ source buildsys/scripts/setenv-cross-ios.sh
+
+ make -f Makefile.generic ...
+
+ uses armv6 and sdk 3.2 as default, can be changed in 'setenv-cross-ios.sh'.
+
View
@@ -14,7 +14,7 @@ build-system:
buildsys/bsdmake silently builds without configure file and
no cmake-based build files is used at all.
- workarond:
+ workaround:
make -f Makefile
@@ -48,21 +48,20 @@ dynload:
dyncallback:
------------
- callback_plain's return value not correct anymore on NDS (maybe just broken testcode?)
+- add MIPS callbacks
+- finish PPC32 callbacks
+- add Plan9 support
urgent issues:
--------------
+- add SPARC/SPARC64 calling conventions to doc's callconv-appendix !!!
- finish dyncallback doc, finish dynload doc, add both to troff doc
- Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found
- * does Haiku use ELF?
- * implement Haiku/dynload if not
-- dyncall_thunk.h is the only header that will be exposed to clients, that includes
- platform specific headers - would be nice to be able to only ship non-platform
- specific headers
+ on default installations (one has to install the system headers)
+ * add to doc
- Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
- test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
- look over code and fix TODO or @@@ marks
-- add MIPS callbacks
-- finish PPC32 callbacks
- consider moving bindings into dyncall/ such that releases include it in the future
* or, alternatively, pack them separately and put them on the website, for releases
- add note to documentation, that bindings are svn-only ATM
@@ -75,7 +74,7 @@ nice to have:
-------------
- enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
- update: microsoft visual c++ build files - integrate all test suites in solution file
-- rename iPhoneOS to iOS
+- rename iPhoneOS to iOS (mostly done)
- maybe rename DC__Arch_PowerPC to ...PPC32 for coherency reasons (...PPC64)?
- consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
- microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
@@ -86,12 +85,12 @@ nice to have:
bugs:
-----
- vararg function calls don't work for PPC32 System V ABI
+- callbacks don't work for PPC32 System V ABI
- vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
args should be used); adapt test/ellipsis
missing implementations (descending priority):
----------------------------------------------
-- sparc, sparc64
- ppc64
- itanium
- 68k, 88k, 6502, etc.
@@ -1,6 +1,6 @@
#//////////////////////////////////////////////////////////////////////////////
#
-# Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
+# Copyright (c) 2007,2011 Daniel Adler <dadler@uni-goettingen.de>,
# Tassilo Philipp <tphilipp@potion-studios.com>
#
# Permission to use, copy, modify, and distribute this software for any
@@ -17,7 +17,6 @@
#
#//////////////////////////////////////////////////////////////////////////////
-
ifndef BUILD_OS
BUILD_OS=generic
endif
@@ -29,6 +28,7 @@ include $(GMAKE_TOP)/tool/nasm.gmake
endif
include $(GMAKE_TOP)/tool/latex.gmake
+include $(GMAKE_TOP)/tool/man.gmake
ifndef BUILD_TOOL_pspsdk
@@ -32,17 +32,18 @@ INSTALL_HEADERS ?= $(INSTALL_INCLUDES)
endif
-INSTALL_PARTS = install-app install-dll install-lib install-includes
+INSTALL_PARTS = install-app install-dll install-lib install-includes install-man3
.PHONY: install $(INSTALL_PARTS)
$(INSTALL_PARTS): build
install: $(INSTALL_PARTS)
ifdef INSTALL_PREFIX
-INSTALL_BINDIR ?= $(INSTALL_PREFIX)/bin
-INSTALL_LIBDIR ?= $(INSTALL_PREFIX)/lib
-INSTALL_INCDIR ?= $(INSTALL_PREFIX)/include
-
+INSTALL_BINDIR ?= $(DESTDIR)$(INSTALL_PREFIX)/bin
+INSTALL_LIBDIR ?= $(DESTDIR)$(INSTALL_PREFIX)/lib
+INSTALL_INCDIR ?= $(DESTDIR)$(INSTALL_PREFIX)/include
+INSTALL_MANDIR ?= $(DESTDIR)$(INSTALL_PREFIX)/share/man
+INSTALL_MAN3DIR ?= $(INSTALL_MANDIR)/man3
$(INSTALL_PREFIX):
mkdir -p $(INSTALL_PREFIX)
$(INSTALL_BINDIR):
@@ -51,6 +52,10 @@ $(INSTALL_LIBDIR):
mkdir -p $(INSTALL_LIBDIR)
$(INSTALL_INCDIR):
mkdir -p $(INSTALL_INCDIR)
+$(INSTALL_MANDIR):
+ mkdir -p $(INSTALL_MANDIR)
+$(INSTALL_MAN3DIR):
+ mkdir -p $(INSTALL_MAN3DIR)
endif
@@ -64,26 +69,31 @@ endif
ifdef INSTALL_LIB
ifdef LIB_FILE
install-lib: $(INSTALL_LIBDIR)
- cp -Rf $(LIB_FILE) $(INSTALL_LIBDIR)
+ install -m 644 $(LIB_FILE) $(INSTALL_LIBDIR)
endif
endif
ifdef INSTALL_APP
ifdef APP_FILE
install-app: $(APP_FILE) $(INSTALL_BINDIR)
- cp -Rf $(APP_FILE) $(INSTALL_BINDIR)
+ install $(APP_FILE) $(INSTALL_BINDIR)
endif
endif
ifdef INSTALL_DLL
ifdef DLL_FILE
install-dll: $(DLL_FILE) $(INSTALL_BINDIR)
- cp -Rf $(DLL_FILE) $(INSTALL_BINDIR)
+ install -m 644 $(DLL_FILE) $(INSTALL_BINDIR)
endif
endif
ifdef INSTALL_HEADERS
install-includes: $(INSTALL_HEADERS) $(INSTALL_INCDIR)
- cp -Rf $(INSTALL_HEADERS) $(INSTALL_INCDIR)
+ install -m 644 $(INSTALL_HEADERS) $(INSTALL_INCDIR)
+endif
+
+ifdef INSTALL_MAN3
+install-man3: $(INSTALL_MAN3) $(INSTALL_MAN3DIR)
+ install -m 644 $(INSTALL_MAN3) $(INSTALL_MAN3DIR)
endif
@@ -22,7 +22,7 @@
# GNU Compiler Collection configuration
#//////////////////////////////////////////////////////////////////////////////
-CC ?= gcc
+CC = gcc
CXX ?= g++
AR ?= ar
AS ?= as
@@ -45,12 +45,12 @@ endif
# --- Assemble ----------------------------------------------------------------
-$(BUILD_DIR)/%.o: %.s
- $(COMPILE.s) $(OUTPUT_OPTION) $<
-
$(BUILD_DIR)/%.o: %.S
$(COMPILE.S) $(OUTPUT_OPTION) $<
+$(BUILD_DIR)/%.o: %.s
+ $(COMPILE.s) $(OUTPUT_OPTION) $<
+
# auto-dependency: disabled, due to problems when including *.d files, see targets.gmake for details
# $(CC) -MM -MT $@ $(CPPFLAGS) $< > $(BUILD_DIR)/$*.d
@@ -98,9 +98,11 @@ $(BUILD_DIR)/%.o: %.cc
# --- static library ----------------------------------------------------------
-LIBTOOL_STATIC ?= $(RM) $@ ; $(AR) -rcs $@ $^
+LIBTOOL_STATIC ?= $(AR) -rcs $@ $^
+SLASH ?= /
$(BUILD_DIR)/%.a:
+ $(RM) $(BUILD_DIR)$(SLASH)$(*F).a
$(LIBTOOL_STATIC)
# --- dynamic library ---------------------------------------------------------
Oops, something went wrong.

0 comments on commit 9ff82b3

Please sign in to comment.