Force global pagemaps into BSS (#364)
Also add a check that the test programs are under about ten megabytes (they're currently around one on platforms that put inline statics full of zeroes into BSS and around 270 on ones that don't). Fixes #339
This commit is contained in:
3
.github/workflows/main.yml
vendored
3
.github/workflows/main.yml
vendored
@@ -66,6 +66,9 @@ jobs:
|
||||
- name: Build
|
||||
working-directory: ${{github.workspace}}/build
|
||||
run: NINJA_STATUS="%p [%f:%s/%t] %o/s, %es" ninja
|
||||
- name: Test file size of binaries is sane
|
||||
working-directory: ${{github.workspace}}/build
|
||||
run: "ls -l func-first_operation-1 ; [ $(ls -l func-first_operation-1 | awk '{ print $5}') -lt 10000000 ]"
|
||||
# If the tests are enabled for this job, run them
|
||||
- name: Test
|
||||
if: ${{ matrix.build-only != 'yes' }}
|
||||
|
||||
@@ -44,6 +44,14 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
# define SNMALLOC_FORCE_BSS __attribute__((section("__DATA,__bss")))
|
||||
#elif defined(__ELF__)
|
||||
# define SNMALLOC_FORCE_BSS __attribute__((section(".bss")))
|
||||
#else
|
||||
# define SNMALLOC_FORCE_BSS
|
||||
#endif
|
||||
|
||||
#ifndef __has_builtin
|
||||
# define __has_builtin(x) 0
|
||||
#endif
|
||||
|
||||
@@ -464,6 +464,7 @@ namespace snmalloc
|
||||
* The global pagemap variable. The name of this symbol will include the
|
||||
* type of `T` and `U`.
|
||||
*/
|
||||
SNMALLOC_FORCE_BSS
|
||||
inline static T global_pagemap;
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user