Mercurial > pub > dyncall > dyncall
view dyncall/README.txt @ 166:d5705f226298
- added portasm support for adding .section .note.GNU-stack "hints" marking generated .o files from assembly files as not needing an executable stack
* needed to be done manually in assembly files, in contrast to C translation units where gcc adds such hints automatically
* this is for security, and better/easier integration of dyncall into other projects and builds, as dyncall doesn't need an executable stack
* thanks to Thorsten Behrens for bringing this up to our intention and providing a first analysis
* currently only done on Linux, but will be added across other platforms (where applicable) after some testing
author | cslag |
---|---|
date | Thu, 05 Jan 2017 11:07:29 +0100 |
parents | 3e629dc19168 |
children |
line wrap: on
line source
Library Design Overview: 1. Call Kernel 2. Utilities (memory and static sized vectors) 3. Call State Machine 4. Application Programming Interface 5. extension: high-level formatted C API (ellipsis style) 1. Call Kernel Assembly Implementation: gcc front-end: dyncall_call.S uses the C preprocessor will include the apropriate assembly source architecture/tool specific sources: dyncall_call_<ARCH>_<ASMTOOL>.[s|asm] 2. Utilities (memory and static sized vectors) 2.1 Memory Management C Interface: dyncall_alloc.h 2.2 Static-sized Vector C Interface: dyncall_vector.h C Implementation: dyncall_vector.c 3. Call State Machine C Implementation: Top-level: dynall_callvm.c Sub-levels: dyncall_callvm_<ARCH>.c 4. Application Programming Interface C Header: Top-level: dyncall.h Sub-level headers: dyncall_macros.h dyncall_config.h dyncall_types.h C Implementation: dyncall_api.c 5. Extension: High-level C API (ellipsis style) C Header: Top-level: dyncall_callf.h Sub-level headers: dyncall_value.h dyncall_signature.h C Implementation: dyncall_callf.c