Commit graph

82 commits

Author SHA1 Message Date
dsainty
59afafc1a4 Revert portions of PR/48587 - applied in 2014 to resolve some issue
with building on Irix.  The changes applied to 'configure' introduce
some quite ugly quote nesting that not all shells (E.g. ksh) can
comprehend.

After discussion, prefer to roll back what looks like undesirable and
unnecessary changes, and drop the 'bash' dependency.  My suspicion is
that the old 'configure' patch is unhelpful even for Irix.

The reason for the PR/48587 changes are not clear, given that part of
that patch also selected 'bash' as the shell to use - which should
have made editing the script unnecessary in the first place.

Demonstrating the problem bringing all this to attention, this is what
happens if you are using ksh as the Pkgsrc shell on MacOS X:

===> Building for libffi-3.3nb2
/bin/ksh: : cannot execute [Is a directory]
<hangs>

The cause is this ugly looking quote nesting that was introduced by
patch-configure in PR/48587...

$ BUILD="` grep "^#### $HOST " Makefile | sed -e 's/.*|//' `"
ksh: : cannot execute [Is a directory]
^C
% bash
bash-5.0$ BUILD="` grep "^#### $$HOST " Makefile | sed -e 's/.*|//' `"
bash-5.0$ exit
% sh
sh-3.2$ BUILD="` grep "^#### $$HOST " Makefile | sed -e 's/.*|//' `"
sh-3.2$ exit

Removing patch-configure results in this much simpler, portable looking
script:

$ BUILD=` grep "^#### $$HOST " Makefile | sed -e 's/.*|//' `

No PKGREVISION bump, this change is not anticipated to affect the
package contents, only the success or failure of the build.
2020-04-24 10:19:32 +00:00
dsainty
35a110c95c Use bash for this build unconditionally, the difficulty in parsing the shell
script is not limited to Irix.

Fixes the build when using ksh (on MacOS) as the preferred shell.

No version bump, this change only repairs outright build failures.
2020-04-20 10:00:54 +00:00
tnn
74f12fad8b libffi: fix ARM build
Restore ifdef toggling .eh_frame exception unwinding.
Seems to have been lost in previous update. PR pkg/55107. Bump.
2020-04-08 13:40:10 +00:00
rin
129535308b Fix build for ILP32 powerpc, which doesn't have 128-bit-length data types. 2020-03-21 16:08:34 +00:00
rin
1641c1db7f Readd support for NetBSD/mips. 2020-03-16 09:35:47 +00:00
tnn
7b05c2b3bc libffi: bump bl3 for solib major change.
XXX needs recursive bump
2020-03-04 16:35:58 +00:00
tnn
bfd3313c15 libffi: kludge for aarch64. Bump rev.
Disable i-cache flushing. This is wrong but the previous version of
libffi didn't do it either and that worked in practice.
2020-02-28 22:37:24 +00:00
tnn
0ab85a0171 libffi: provide a stub function as temporary band aid for aarch64 2020-02-28 18:14:28 +00:00
tnn
ab7874a9ad Back out previous patch.
Although it made the package link, python is still broken on aarch64:

*** WARNING: renaming "_ctypes" since importing it failed: /usr/pkg/lib/libffi.so.7: Undefined PLT symbol "ffi_data_to_code_pointer" (symnum = 50)
2020-02-28 16:36:14 +00:00
tnn
57cec6916e libffi: deal with fallout on aarch64 2020-02-28 15:44:36 +00:00
jperkin
d92ef2ad7c libffi: Restrict perl to SunOS, as requested by joerg. 2020-02-28 13:20:10 +00:00
adam
7e091af0ce libffi: update comment; spotted by @leot 2020-02-27 14:55:02 +00:00
jperkin
41a943db5d libffi: New version requires perl. 2020-02-27 09:30:43 +00:00
adam
c3b23c7f4f libffi: updated to 3.3
libffi v3.3
* Add RISC-V support.
* New API in support of GO closures.
* Add IEEE754 binary128 long double support for 64-bit Power
* Default to Microsoft's 64-bit long double ABI with Visual C++.
* GNU compiler uses 80 bits (128 in memory) FFI_GNUW64 ABI.
* Add Windows on ARM64 (WOA) support.
* Add Windows 32-bit ARM support.
* Raw java (gcj) API deprecated.
* Add pre-built PDF documentation to source distribution.
* Many new test cases and bug fixes.
2020-02-26 19:15:44 +00:00
pho
a99ea692f2 Fix build on FreeBSD 12 2020-01-12 10:48:50 +00:00
joerg
6a4d02f977 Fix a glaring sign bug in the closure handling on NetBSD 8+. Fixes
PR 52523 as Sparc seems to use more annoying instructions than x86 and
ARM.

Bump revision.
2017-09-05 15:08:42 +00:00
joerg
2207155658 Implement a W^X-aware closure allocator. Overhead is one page per
closure, but the number should normally be moderately small. A smarter
scheme can be implemented if necessary. Requires NetBSD 7.99.72+.

Bump revision.
2017-05-26 18:55:41 +00:00
wiz
3b74e1ae1e Revert, all the parts for tests were already, just not for interactive use. 2017-01-28 15:39:56 +00:00
wiz
51166b143f Add test target. Result:
# of expected passes            970
# of unexpected failures        450
2017-01-28 15:33:25 +00:00
maya
689fb6ba3a libffi: remove some netbsd/mips specific patches that are uneeded
(and may be harmful).

we don't need a definition to declare we're definitely totally o32,
especially since the vast majority will be n32. this is potentially
harmful, but I cannot confirm any resulting harm.

don't try to avoid compiler builtins, we have them and I expect that
they will work, however, only build tested (on netbsd 7.99.41 mips64eb),
no tests run.

bump PKGREVISION.
2016-11-03 11:40:28 +00:00
jperkin
06e42eb0aa Fix GNU triplet match for Solaris to indicate that writeable and executable
heap is not supported.  Fixes complete test failure on x86_64.

Update patch offsets and comments while here.  Bump PKGREVISION.
2016-01-25 17:56:38 +00:00
agc
d9e4cfe05d Add SHA512 digests for distfiles for devel category
Issues found with existing distfiles:
	distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
	distfiles/fortran-utils-1.1.tar.gz
	distfiles/ivykis-0.39.tar.gz
	distfiles/enum-1.11.tar.gz
	distfiles/pvs-3.2-libraries.tgz
	distfiles/pvs-3.2-linux.tgz
	distfiles/pvs-3.2-solaris.tgz
	distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 03:27:11 +00:00
jperkin
1f7c5abd64 Disable incompatible assembly sections on 32-bit OSX. Based on MacPorts fix
in http://trac.macports.org/ticket/44170
2015-03-23 15:34:18 +00:00
tnn
921a98c993 wants pthreads 2015-03-07 16:37:51 +00:00
martin
fd042fef76 Make it buildable on NetBSD/alpha 2015-01-09 15:10:51 +00:00
wiz
3c25b1d10c Remove Cygwin patches (were integrated in 3.2) 2014-11-20 16:10:37 +00:00
wiz
8651139bbf Update to 3.2.1:
Fix for AArch64. Release as 3.2.1.

    Fix typo

    Final 3.2 changes

    Final 3.2 changes

    Mention OpenRISC

    Merge pull request #134 from s-macke/openrisc

    Add OpenRISC support

    Only run the complex type tests on supported platforms.

    Add OpenRISC support

    This patch adds support for the OpenRISC architecture.
    (http://opencores.org/or1k/Main_Page)

    This patch has been tested under Linux with QEMU-user emulation support.
    - 32 Bit
    - big endian
    - delayed instructions
    This is the only available configuration under Linux.

    The description of the ABI can be found on the official website.

    Is passes the testsuite except of the unwindtest_ffi_call.cc
    testcase, which seems to be a problem of gcc and not libffi.
    Some testcases of the gcc testsuite still fail.

    Signed-off-by: Sebastian Macke <sebastian@macke.de>

    Add complex type support. Mostly broken right now

    Compile tests with -Wno-psabi when using GCC

    Update version to 3.2

    More README updates for 3.2

    Update release notes.

    2014-05-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

    	Fix current cygwin-64 build problems.
    	* src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
    	* src/x86/ffi.c: Add if defined(__CYGWIN__).
    	* src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
    	handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
    	Added SEH information.  Fixed formatting.

    2014-09-10  Jakub Jelinek  <jakub@redhat.com>

    	* src/powerpc/linux64.S: Emit .note.GNU-stack even when
    	POWERPC64 is not defined.
    	* src/powerpc/linux64_closure.S: Likewise.  Also test _CALL_ELF == 2.

    Fix -Werror=declaration-after-statement problem

    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>

    	* src/types.c (FFI_TYPEDEF, FFI_NONCONST_TYPEDEF): Merge the macros by
    	adding another argument that controls whether the result is const or not
    	(FFI_LDBL_CONST): Temporary macro to reduce ifdef confusion
    	* src/prep_cif.c (ffi_prep_cif_core): Replace list of systems with new
    	macro FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
    	* src/pa/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
    	Define.
    	* src/s390/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
    	Define.
    	* src/x86/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
    	Define.

    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>

    	* doc/libffi.texi (Primitive Types): Document ffi_type_complex_float,
    	ffi_type_complex_double and ffi_type_complex_longdouble
    	(Complex Types): New subsection.
    	(Complex Type Example): Ditto.
    	* testsuite/libffi.call/cls_align_complex_double.c: New
    	FFI_TYPE_COMPLEX test.
    	* testsuite/libffi.call/cls_align_complex_float.c: Ditto.
    	* testsuite/libffi.call/cls_align_complex_longdouble.c: Ditto.
    	* testsuite/libffi.call/cls_complex_double.c: Ditto.
    	* testsuite/libffi.call/cls_complex_float.c: Ditto.
    	* testsuite/libffi.call/cls_complex_longdouble.c: Ditto.
    	* testsuite/libffi.call/cls_complex_struct_double.c: Ditto.
    	* testsuite/libffi.call/cls_complex_struct_float.c: Ditto.
    	* testsuite/libffi.call/cls_complex_struct_longdouble.c: Ditto.
    	* testsuite/libffi.call/cls_complex_va_double.c: Ditto.
    	* testsuite/libffi.call/cls_complex_va_float.c: Ditto.
    	* testsuite/libffi.call/cls_complex_va_longdouble.c: Ditto.
    	* testsuite/libffi.call/complex_double.c: Ditto.
    	* testsuite/libffi.call/complex_defs_double.c: Ditto.
    	* testsuite/libffi.call/complex_float.c: Ditto.
    	* testsuite/libffi.call/complex_defs_float.c: Ditto.
    	* testsuite/libffi.call/complex_longdouble.c: Ditto.
    	* testsuite/libffi.call/complex_defs_longdouble.c: Ditto.
    	* testsuite/libffi.call/complex_int.c: Ditto.
    	* testsuite/libffi.call/many_complex_double.c: Ditto.
    	* testsuite/libffi.call/many_complex_float.c: Ditto.
    	* testsuite/libffi.call/many_complex_longdouble.c: Ditto.
    	* testsuite/libffi.call/return_complex1_double.c: Ditto.
    	* testsuite/libffi.call/return_complex1_float.c: Ditto.
    	* testsuite/libffi.call/return_complex1_longdouble.c: Ditto.
    	* testsuite/libffi.call/return_complex2_double.c: Ditto.
    	* testsuite/libffi.call/return_complex2_float.c: Ditto.
    	* testsuite/libffi.call/return_complex2_longdouble.c: Ditto.
    	* testsuite/libffi.call/return_complex_double.c: Ditto.
    	* testsuite/libffi.call/return_complex_float.c: Ditto.
    	* testsuite/libffi.call/return_complex_longdouble.c: Ditto.
    	* src/raw_api.c (ffi_raw_to_ptrarray): Handle FFI_TYPE_COMPLEX
    	(ffi_ptrarray_to_raw): Ditto.
    	* src/prep_cif.c (ffi_prep_cif_core): Abort if FFI_TYPE_COMPLEX is not
    	implemented in libffi for the target.
    	* src/java_raw_api.c (ffi_java_raw_size): FFI_TYPE_COMPLEX not supported
    	yet (abort).
    	(ffi_java_raw_to_ptrarray): Ditto.
    	(ffi_java_rvalue_to_raw): Ditto.
    	(ffi_java_raw_to_rvalue):  Ditto.
    	* src/debug.c (ffi_type_test): Add debug tests for complex types.
    	* include/ffi.h.in (FFI_TYPE_COMPLEX): Add new FFI_TYPE_COMPLEX.
    	(FFI_TYPE_LAST): Bump.
    	(ffi_type_complex_float): Add new ffi_type_....
    	(ffi_type_complex_double): Ditto.
    	(ffi_type_complex_longdouble): Ditto.

    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>

    	* src/s390/ffitarget.h (FFI_TARGET_HAS_COMPLEX_TYPE): Define to provide
    	FFI_TYPE_COMPLEX support.
    	* src/s390/ffi.c (ffi_check_struct_type): Implement FFI_TYPE_COMPLEX
    	(ffi_prep_args): Ditto.
    	(ffi_prep_cif_machdep): Ditto.
    	(ffi_closure_helper_SYSV): Ditto.

    Merge pull request #132 from nielsAD/master

    Pascal and Register calling convention support on x86

    Merge pull request #130 from frida/fix/darwin-aarch64-float-alignment

    Fix alignment of FFI_TYPE_FLOAT for Apple's ARM64 ABI

    Merge pull request #129 from frida/fix/darwin-aarch64-cif-prep

    Fix non-variadic CIF initialization for Apple/ARM64

    Merge pull request #124 from knuesel/master

    Fix issue with builddir when calling configure with absolute path

    Merge pull request #123 from ehsan/clang-cl

    Add support for building with clang-cl

    Determine whether register arguments (THISCALL/FASTCALL/REGISTER) are really passed via register to closures. Use stack if not.

    Fixed THISCALL/FASTCALL closures and added basic support for PASCAL/REGISTER closures.

    Support for calling functions with PASCAL and REGISTER calling conventions on x86 Windows/Linux.
    Also changed indentation to be more consistent throughout the (adjusted) files.

    Enable forcing the usage of the static CRT in libffi's msvc wrapper

    This is required for AddressSanitizer builds with clang-cl.

    Fix alignment of FFI_TYPE_FLOAT for Apple's ARM64 ABI

    Fix non-variadic CIF initialization for Apple/ARM64

    Turns out `aarch64_nfixedargs` wasn't initialized in the non-variadic
    case, resulting in undefined behavior when allocating arguments.

    Fix issue with builddir when calling configure with absolute path

    Add support for building with clang-cl

    Remove compiler warning

    Fix paths in libffi.pc.in

    Merge pull request #122 from rvandermeulen/1014976

    Don't make --enable-debug imply using the debug CRT in libffi

    Bug 1014976 - Don't make --enable-debug imply using the debug CRT in libffi.

    Prepare for libffi 3.1.1

    Add missing GNU stack markings in win32.S

    Fix typo

    Update current version.

    Increment libtool version number

    Merge pull request #120 from l0kod/tmpfile

    Create temporary file with O_TMPFILE and O_CLOEXEC when available

    closures: Check for mkostemp(3)

    closures: Create temporary file with O_TMPFILE and O_CLOEXEC when available

    The open_temp_exec_file_dir function can create a temporary file without
    file system accessible link. If the O_TMPFILE flag is not defined (old
    Linux kernel or libc) the behavior is unchanged.

    The open_temp_exec_file_name function now need a new argument "flags"
    (like O_CLOEXEC) used for temporary file creation.

    The O_TMPFILE flag allow temporary file creation without race condition.
    This feature/fix prevent another process to access the (future)
    executable file from the file system.

    The O_CLOEXEC flag automatically close the temporary file for any
    execve. This avoid transmitting (executable) file descriptor to a child
    process.
2014-11-19 13:49:35 +00:00
joerg
7d1458668a Restore NetBSD/eARM support 2014-11-10 21:29:40 +00:00
joerg
79828d4c1e pkg-config always uses ${} for variable expansion, not $(). Make sure
the correct use ends up in libffi.pc as libdir might be set to an
entirely different value by whoever is using the file. Unbreaks Mozilla
packages that ended up with wrkdir references via rpath. Bump revision.
2014-11-04 21:40:05 +00:00
adam
e23d248581 Changes 3.1:
Add AArch64 (ARM64) iOS support.
Add Nios II support.
Add m88k and DEC VAX support.
Add support for stdcall, thiscall, and fastcall on non-Windows
  32-bit x86 targets such as Linux.
Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi fixes.
Make the testsuite more robust: eliminate several spurious
  failures, and respect the $CC and $CXX environment variables.
Archive off the manually maintained ChangeLog in favor of git log.
2014-10-28 12:51:03 +00:00
joerg
e45e2861fa GAS doesn't like unified ARM syntax without explicitly told so. 2014-06-11 11:45:04 +00:00
ryoon
9f69c717a2 Fix build under OpenBSD 5.5
A patch from upstream,
76d19d004e (diff-e2d5a00791bce9a01f99bc6fd613a39d)
2014-06-01 03:53:03 +00:00
joerg
868f58b07d Add .cfi_startprroc / .cfi_endproc annotation. XXX Note marking up the
frame yet. Hide ARM instructions when using DWARF EH.
2014-05-21 01:36:22 +00:00
wiz
9a4c8bbbcf Update HOMEPAGE. 2014-05-18 15:17:51 +00:00
dholland
cab2c7b365 Fixes for IRIX from Staffan Thomén in PR 48587.
This is all of it except for one bit pertaining to libtool, which is
going to require some additional flailing.
2014-02-11 07:21:28 +00:00
jklos
bc95ac4322 Add libffi support for VAX and m88k. Tested with netbsd-6 on VAX.
From Miod Vallat:

https://sourceware.org/ml/libffi-discuss/2013/msg00165.html
2013-11-03 23:51:51 +00:00
ryoon
1aac3a1b79 Fix build on Cygwin64.
* Patches borrowed from cygwin64's libffi-3.0.13-1-src.tar.bz2.
2013-07-26 13:12:25 +00:00
obache
ef66b98821 Update libffi to 3.0.13.
3.0.13 Mar-17-13
        Add Meta support.
        Add missing Moxie bits.
        Fix stack alignment bug on 32-bit x86.
        Build fix for m68000 targets.
        Build fix for soft-float Power targets.
        Fix the install dir location for some platforms when building
          with GCC (OS X, Solaris).
        Fix Cygwin regression.
2013-04-06 12:41:23 +00:00
jperkin
5bc0d41dc9 Disable multilib directories. Fixes packaging issues on at least SunOS
64-bit, possibly others.

Patch from obache.
2013-03-18 10:04:10 +00:00
drochner
3143f4c0a6 update to 3.0.12
changes:
-bugfixes
-more compilers/CPUs supported
2013-03-14 19:56:41 +00:00
ryoon
991b650cfd Fix PR/47199
Restore _MIPS_SIM workaround, removed during updating to rev. 1.4 of patch-ae.
Functionality is not tested yet.
2012-12-18 12:33:07 +00:00
asau
e1ab7079b6 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-31 11:16:30 +00:00
drochner
35c4a1c43f fix closures on NetBSD/amd64 and possibly more NetBSD platforms where
malloc'd memory is not automatically executable
bump PKGREV
2012-10-11 19:37:47 +00:00
jmmv
cfa0d7784e Fix build under NetBSD/macppc. 2012-10-09 01:07:55 +00:00
asau
3d853d7eb6 Library major version changed. 2012-09-15 00:22:43 +00:00
asau
e952622554 Update to libffi 3.0.11
3.0.11 Apr-11-12
        Add support for variadic functions (ffi_prep_cif_var).
	Add Linux/x32 support.
	Add thiscall, fastcall and MSVC cdecl support on Windows.
        Add Amiga and newer MacOS support.
	Add m68k FreeMiNT support.
	Integration with iOS' xcode build tools.
	Fix Octeon and MC68881 support.
	Fix code pessimizations.
        Lots of build fixes.

3.0.10 Aug-23-11
        Add support for Apple's iOS.
	Add support for ARM VFP ABI.
        Add RTEMS support for MIPS and M68K.
	Fix instruction cache clearing problems on
	  ARM and SPARC.
	Fix the N64 build on mips-sgi-irix6.5.
	Enable builds with Microsoft's compiler.
	Enable x86 builds with Oracle's Solaris compiler.
	Fix support for calling code compiled with Oracle's Sparc
	  Solaris compiler.
	Testsuite fixes for Tru64 Unix.
	Additional platform support.
2012-09-14 23:45:27 +00:00
jperkin
2008e2abc4 Apply fix from http://gcc.gnu.org/ml/java-patches/2010-q1/msg00058.html
Fixes Solaris/64bit, tested on NetBSD/amd64.
2012-05-30 09:13:16 +00:00
tsutsui
188fd541cf Pull fix from upstream for asm error on NetBSD/arm with newer binutils:
0e5843995f (diff-39)
>  * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
2011-12-31 09:58:22 +00:00
tez
51fb83c674 Fix build for Solaris x86 with older gcc per PR#42865 2011-09-27 15:12:37 +00:00
asau
e3b9b1e36e The library uses m68k_sync_icache from libm68k on NetBSD/m68k.
Fix as proposed by <obache> in PR pkg/44901. Bump package revision.
2011-04-24 09:51:29 +00:00