mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Do not use MRB_METHOD_TABLE_INLINE by default; fix #3924
It was default on Linux. Abandoned for 2 reasons: * some cross-platform compiler defines `__linux__` even on bare metal environment (RTL8196 (MIPS big endian soc) for example). * some compilers do not align functions pointers so that we need to specify `-falign-functions=n` (where n>1). It's not suitable for default configuration. By our measurement, `mrbtest` consumes 400KB less memory. So if your target machine is memory tight, add the following command-line options to `GCC` (unfortunately `clang` does not support `-falign-functions`). `-falign-functions=2 -DMRB_METHOD_TABLE_INLINE`
This commit is contained in:
+3
-5
@@ -36,12 +36,10 @@
|
||||
/* size of the method cache (need to be the power of 2) */
|
||||
//#define MRB_METHOD_CACHE_SIZE (1<<7)
|
||||
|
||||
/* add -DMRB_METHOD_TABLE_INLINE unless platform uses MSB of pointers */
|
||||
/* add -DMRB_METHOD_TABLE_INLINE to reduce the size of method table */
|
||||
/* MRB_METHOD_TABLE_INLINE requires LSB of function pointers to be zero */
|
||||
/* you might need to specify --falign-functions=n (where n>1) */
|
||||
//#define MRB_METHOD_TABLE_INLINE
|
||||
/* turn MRB_METHOD_TABLE_INLINE on for linux by default */
|
||||
#if !defined(MRB_METHOD_TABLE_INLINE) && defined(__linux__)
|
||||
# define MRB_METHOD_TABLE_INLINE
|
||||
#endif
|
||||
|
||||
/* add -DMRB_INT16 to use 16bit integer for mrb_int; conflict with MRB_INT64 */
|
||||
//#define MRB_INT16
|
||||
|
||||
Reference in New Issue
Block a user