Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 786b2384 authored by Johannes Berg's avatar Johannes Berg Committed by Richard Weinberger
Browse files

um: Enable CONFIG_CONSTRUCTORS



We do need to call the constructors for *modules*, and
at least for KASAN in the future, we must call even the
kernel constructors only later when the kernel has been
initialized.

Instead of relying on libc to call them, emit an empty
section for libc and let the kernel's CONSTRUCTORS code
do the rest of the job.

Tested that it indeed doesn't work in modules, and does
work after the fixes in both, with a few functions with
__attribute__((constructor)) in both dynamic and static
builds.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 324f80cc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -83,8 +83,8 @@
	__preinit_array_end = .;
  }
  .init_array : {
        /* dummy - we call this ourselves */
	__init_array_start = .;
	*(.init_array)
	__init_array_end = .;
  }
  .fini_array : {
+0 −1
Original line number Diff line number Diff line
@@ -103,7 +103,6 @@ SECTIONS
     be empty, which isn't pretty.  */
  . = ALIGN(32 / 8);
  .preinit_array     : { *(.preinit_array) }
  .init_array     : { *(.init_array) }
  .fini_array     : { *(.fini_array) }
  .data           : {
    INIT_TASK_DATA(KERNEL_STACK_SIZE)
+0 −1
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ config CC_DISABLE_WARN_MAYBE_UNINITIALIZED

config CONSTRUCTORS
	bool
	depends on !UML

config IRQ_WORK
	bool
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ menu "GCOV-based kernel profiling"
config GCOV_KERNEL
	bool "Enable gcov-based kernel profiling"
	depends on DEBUG_FS
	select CONSTRUCTORS if !UML
	select CONSTRUCTORS
	default n
	---help---
	This option enables gcov-based code profiling (e.g. for code coverage