The dyncall library encapsulates architecture-, OS- and compiler-specific
function call semantics in a virtual "bind parameters from left to right
and then call" interface allowing programmers to call C functions in a
completely dynamic manner. In other words, instead of calling a function
directly, the dyncall library provides a mechanism to push the function
parameters manually and to issue the call afterwards.
This means, that a program can determine at runtime what function to
call, and what parameters to pass to it. The library is written in C and
assembly and provides a very simple C interface to program against.
The library comes in very handy to power flexible message systems,
dynamic function call dispatch mechanisms, closure implementations or
even to bridge different programming languages.
When it comes to language bindings, the dyncall library provides a clean
and portable C interface to dynamically issue calls to foreign code using
small kernels written in assembly. Instead of providing code for every
bridged function call, which unnecessarily results in code bloat, only a
couple of instructions are used to invoke every possible call.
devel/dyncall: fix build on powerpc
cc -O2 -pipe -fPIC -fstack-protector-strong -fno-strict-aliasing
-I/wrkdirs/usr/ports/devel/dyncall/work/dyncall-1.4/./dyncallback/../dyncall -c
dyncall_thunk.c -o dyncall_thunk.o
In file included from dyncall_thunk.c:38:
./dyncall_thunk_ppc32_sysv.c:28:28: warning: parameter 'x' was not declared,
defaults to 'int'; ISO C99 and later do not support implicit int
[-Wimplicit-int]
static unsigned short hi16(x) { return ( (unsigned short) (((unsigned
int)x)>>16UL) ); }
^
./dyncall_thunk_ppc32_sysv.c:28:23: warning: a function definition without a
prototype is deprecated in all versions of C and is not supported in C2x
[-Wdeprecated-non-prototype]
static unsigned short hi16(x) { return ( (unsigned short) (((unsigned
int)x)>>16UL) ); }
^
./dyncall_thunk_ppc32_sysv.c:29:28: warning: parameter 'x' was not declared,
defaults to 'int'; ISO C99 and later do not support implicit int
[-Wimplicit-int]
static unsigned short lo16(x) { return ( (unsigned short) ((unsigned int)x)
); }
^
./dyncall_thunk_ppc32_sysv.c:29:23: warning: a function definition without a
prototype is deprecated in all versions of C and is not supported in C2x
[-Wdeprecated-non-prototype]
static unsigned short lo16(x) { return ( (unsigned short) ((unsigned int)x)
); }
^
./dyncall_thunk_ppc32_sysv.c:41:26: error: incompatible pointer to integer
conversion passing 'DCThunk *' (aka 'struct DCThunk_ *') to parameter of type
'int' [-Wint-conversion]
p->addr_self_hi = hi16(p);
^
./dyncall_thunk_ppc32_sysv.c:43:26: error: incompatible pointer to integer
conversion passing 'DCThunk *' (aka 'struct DCThunk_ *') to parameter of type
'int' [-Wint-conversion]
p->addr_self_lo = lo16(p);
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
devel/dyncall: Update to 1.1
From ChangeLog:
http://hg.dyncall.org/pub/dyncall/dyncall/file/5ac53b2d5f1e/ChangeLog
dyncall:
* support for soft-float MIPS o32 & n64 (big- and little-endian, each)
* x64 System V syscall support
dyncallback:
* support for soft-float MIPS o32 & n64 (big- and little-endian, each)
dynload:
* added UTF-8 support for pathnames on windows
* reliability/stability fix for dlGetLibraryPath() on glibc based platforms
(avoiding
internal use of glibc's bad impl of dlinfo() which doesn't do any error
checking at all)
* Darwin/macos fix for dlGetLibraryPath() to correctly fail on bogus handles
(did return
paths to random libraries under some circumstances, instead of returning an
error)
(Only the first 15 lines of the commit message are shown above )
For ports that are marked BROKEN on armv6, and also fail to build on
armv7, mark them so.
This is part two of a multipart commit to bring armv7 ports to parity
with armv6.
Approved by: portmgr (tier-2 blanket)
Obtained from: lonesome.com -exp run
Add -fPIC to CFLAGS; bump PORTREVISION
PIC is required for this port to work properly. However, the
port's own build system only adds it if CFLAGS is not set in MAKE_ENV.
This adds -fPIC to the pre-defined set of CFLAGS to ensure the port
is properly built.
PR: 208201
Submitted by: tphilipp@potion-studios.com (maintainer)
- Fix build on PowerPC
PR: ports/146043
Submitted by: Andreas Tobler <andreast-list AT fgznet.ch>
Approved by: Tassilo Philipp <tphilipp AT potion-studios.com> (maintainer,
via private mail)
- Update to 0.3, mark more archs as unsupported
- While here, canonize identation and add tiny improvements (use PORTVERSION in
MASTER_SITES url, no need to use full path in MAKEFILE)
PR: 131223
Submitted by: Tassilo Philipp <tphilipp at potion-studios dot com>
(maintainer)
The dyncall library encapsulates architecture-, OS- and compiler-specific
function call semantics in a virtual "bind parameters from left to right
and then call" interface allowing programmers to call C functions in a
completely dynamic manner. In other workds, instead of calling a function
directly, the dyncall library provides a mechanism to push the function
parameters manually and to issue the call afterwards.
This means, that a program can determine at runtime what function to
call, and what parameters to pass to it. The library is written in C and
assembly and provides a very simple C interface to program against.
The library comes in very handy to power flexible message systems,
dynamic function call dispatch mechanisms, closure implementations or
even to bridge different programming languages.
When it comes to language bindings, the dyncall library provides a clean
and portable C interface to dynamically issue calls to foreign code using
small kernels written in assembly. Instead of providing code for every
bridged function call, which unnecessarily results in code bloat, only a
couple of instructions are used to invoke every possible call.
WWW: http://www.dyncall.org
PR: ports/122720
Submitted by: Tassilo Philipp <tphilipp at potion-studios.com>