1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
|
New in 2.5:
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- loongarch64: Linux with lp64d ABI.
- riscv64: Linux with musl libc.
- hppa: Linux.
- powerpc: FreeBSD, NetBSD.
- powerpc64: FreeBSD.
- powerpc64le: FreeBSD.
- arm: Android.
* Fixed support for the following platforms:
(Previously, a build on these platforms appeared to succeed but was buggy.)
- ia64: Linux.
- arm64: OpenBSD.
* Simplified the environmental requirements (the library no longer allocates
a temporary file in /tmp) on the following platforms:
- Linux.
- macOS.
- FreeBSD 13 and newer.
- NetBSD 8 and newer.
New in 2.4:
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- arm64: macOS 11.
- arm: FreeBSD 12.
- sparc: Solaris 11 32-bit.
New in 2.3:
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- x86_64: FreeBSD 13, OpenBSD 6.5 and newer.
- powerpc64: AIX 7 with xlclang compiler.
* Fixed a couple of multithread-safety bugs in the trampoline and callback
packages.
New in 2.2:
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- armv6 (Raspberry Pi): Linux.
- hppa: Linux 32-bit.
- riscv32: Linux with ilp32d ABI.
- riscv64: Linux with lp64d ABI.
* The build for the mips 32-bit ABI is now compatible with toolchains for
the 'fpxx' ABI variant. The downside is that the mips1 architecture is
no longer supported.
* Fixed a bug regarding passing of more than 8 arguments on the following
platforms:
- arm64: Linux 64-bit.
* Fixed a stack corruption bug on the following platforms:
- hppa: HP-UX 32-bit.
New in 2.1:
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- arm: Linux with PIE-enabled gcc.
- x86_64: Solaris 11.3.
- OpenBSD 6.1.
- HardenedBSD 10 and 11.
* Fixed a bug regarding passing of pointers on the following platforms:
- x86_64: Linux with x32 ABI: CC="gcc -mx32".
* Fixed a crash in trampoline on the following platforms:
- mips: Linux with CC="gcc -mabi=64", little endian.
New in 2.0:
* The package now installs a library libffcall.{a,so}. It contains the
'avcall' and 'callback' packages. The libraries libavcall.{a,so} and
libcallback.{a,so} are still installed as well, but are deprecated.
* The installed libraries are now installed as shared libraries by default
(except for libvacall, which is still a static library only).
* The installed shared libraries are now properly versioned. This means that
when installing with --enable-shared, upgrading to a newer version of
libffcall will not break existing binaries.
* The installed include files are now platform independent. This means that
you can now install libffcall for different ABIs on the same system, using
the same --prefix option but different --exec-prefix options for each ABI.
* API changes in <trampoline.h>:
- The second argument of alloc_trampoline() is now a 'void**', rather
than a 'void*'.
- The return value of trampoline_variable() is now a 'void**', rather
than a 'void*'.
- The argument of trampoline_address(), trampoline_variable(),
trampoline_data() is now a function pointer instead of a 'void*'.
* API changes in <callback.h>:
- The argument of callback_address(), callback_data() is now a function
pointer instead of a 'void*'.
* Fixed a bug regarding floating-point arguments followed by
non-floating-point arguments on the following platforms:
- arm: Linux 32-bit, with hardware floats.
- powerpc: Linux 32-bit.
- s390: Linux.
* Fixed a bug regarding structure returns on the following platforms:
- i386: FreeBSD.
- i386: MinGW.
- mips: old 32-bit ABI (Linux, IRIX).
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- i386: MSVC 14.
- x86_64: Cygwin.
- x86_64: MinGW.
- x86_64: MSVC 14.
- hppa64: HP-UX 11.
- m68k: Linux.
* Verified support for the following platforms:
(A build on these platforms worked and still works.)
- i386: FreeBSD, NetBSD, OpenBSD, DragonFly BSD.
- i386: Hurd.
- x86_64: FreeBSD, NetBSD, OpenBSD.
New in 1.13:
* The license has been changed from GPLv2 to GPLv2+.
* Added support for the following platforms:
(Previously, a build on these platforms failed.)
- x86_64: Mac OS X 64-bit.
- x86_64: Solaris 64-bit.
- x86_64: Linux with x32 ABI: CC="gcc -mx32".
- arm: Linux 32-bit, without hardware floats.
- arm64: Linux 64-bit.
- s390x: Linux 64-bit.
- powerpc: AIX 64-bit.
- mips: IRIX 6.5 with CC="cc -32".
- sparc: Solaris 64-bit.
* Fixed support for the following platforms:
(Previously, a build on these platforms appeared to succeed but was buggy.)
- x86_64: Linux.
- arm: Linux 32-bit, with hardware floats.
- powerpc: Linux 64-bit.
- mips: Linux with CC="gcc -mabi=32".
- mips: Linux with CC="gcc -mabi=n32".
- mips: Linux with CC="gcc -mabi=64".
- mips: IRIX 6.5 with CC="gcc -mabi=n32".
- s390: Linux.
- sparc: Linux 64-bit.
- ia64: Linux.
- hppa: HP-UX 32-bit.
* Verified support for the following platforms:
(A build on these platforms worked and still works.)
- i386: Linux, Solaris, Mac OS X.
- powerpc: Linux 32-bit.
- powerpc: AIX 32-bit.
- powerpc: MacOS X.
- mips: IRIX 6.5 with CC="cc -n32".
- sparc: Solaris 32-bit.
- sparc: Linux 32-bit: CC="gcc -m32".
- alpha: Linux.
* Support for a security feature: On Linux and FreeBSD platforms, linking with
the libffcall libraries no longer causes the stack to become executable.
New in 1.12:
* Added ppc64le to the list of supported architectures.
New in 1.11:
* Header now define LIBFFCALL_VERSION (to 0x010B).
* Better support for IA64 on Linux (kernel 2.6.16+ and gcc 4.1.0+).
* Added ARM support from Jonathan Olson (debian 1.10-2).
* Added MIPSel support from Thiemo Seufer (debian 1.10-2).
* Added ARMel support from Max Lapan.
New in 1.10:
* Added support for PowerPC NetBSD.
New in 1.9:
* Added support for x86_64 (AMD64) Linux.
* Added support for PowerPC MacOS X.
New in 1.8:
* Added support for IA64 Linux.
New in 1.7:
* Struct types containing elements other than int, long, long long, pointer
are not supported any more. Passing them as arguments and results is too
hairy.
* Added support for PowerPC Linux.
New in 1.6:
* The avcall and callback packages are compiled as position-independent code,
if CC="gcc -fPIC".
* The avcall and callback packages are built as shared libraries, if
the option "--enable-shared" is passed to configure.
* The package can now be built with CC="gcc -x c++".
* Improved RS6000/PowerPC support.
* Improved support for gcc on Irix6 (-n32 ABI).
* Added preliminary support for 64-bit SPARC.
New in 1.5:
* Added support for m68k Linux.
New in 1.4:
* Added support for the two new ABIs on Irix6 (-n32, -64).
* A fix for DEC Alpha.
New in 1.3.1:
* Added support for Mingw32 on Win32.
* Fixed a compilation problem in trampoline on m68k NetBSD.
* Fixed an installation problem with clisp: When configured outside the source
directory, callback.h would not be copied into the build directory.
New in 1.3:
* Added the callback package, a reentrant combination of vacall and trampoline.
* The avcall and callback packages are multithread-safe.
* Fixed bugs in trampoline on hppa and rs6000.
* On hppa, added support for gcc-2.7.2, although its calling convention is
different from gcc-2.6.3.
New in 1.2.1:
* Added support for MSVC5 on Win32.
New in 1.2:
* Support passing/returning values of type ‘long long’ and ‘unsigned long long’
on platforms which have these types.
* Support for "stdcall" calling convention on i386.
* Added support for Cygwin32 and MSVC4 on Win32.
* Added support for EMX on OS/2.
* Added support for m68k AmigaOS (Jörg Höhle).
* Added support for m68k SunOS 4.0.3.
* More reliable cache-flushing in trampoline.
New in 1.1:
* Added support for SUNWspro cc on Sparc Solaris.
* Added support for AIX 4.
* Added preliminary support for 64-bit MIPS.
|