1010#error This file should only be included in vmlinux.lds.S
1111#endif
1212
13+ #define PI_EXPORT_SYM (sym ) \
14+ __PI_EXPORT_SYM(sym, __pi_ ## sym, Cannot export BSS symbol sym to startup code)
15+ #define __PI_EXPORT_SYM (sym , pisym , msg )\
16+ PROVIDE(pisym = sym); \
17+ ASSERT((sym - KIMAGE_VADDR) < (__bss_start - KIMAGE_VADDR), #msg)
18+
1319PROVIDE (__efistub_primary_entry = primary_entry );
1420
1521/*
@@ -36,36 +42,34 @@ PROVIDE(__pi___memcpy = __pi_memcpy);
3642PROVIDE (__pi___memmove = __pi_memmove );
3743PROVIDE (__pi___memset = __pi_memset );
3844
39- PROVIDE ( __pi_id_aa64isar1_override = id_aa64isar1_override );
40- PROVIDE ( __pi_id_aa64isar2_override = id_aa64isar2_override );
41- PROVIDE ( __pi_id_aa64mmfr0_override = id_aa64mmfr0_override );
42- PROVIDE ( __pi_id_aa64mmfr1_override = id_aa64mmfr1_override );
43- PROVIDE ( __pi_id_aa64mmfr2_override = id_aa64mmfr2_override );
44- PROVIDE ( __pi_id_aa64pfr0_override = id_aa64pfr0_override );
45- PROVIDE ( __pi_id_aa64pfr1_override = id_aa64pfr1_override );
46- PROVIDE ( __pi_id_aa64smfr0_override = id_aa64smfr0_override );
47- PROVIDE ( __pi_id_aa64zfr0_override = id_aa64zfr0_override );
48- PROVIDE ( __pi_arm64_sw_feature_override = arm64_sw_feature_override );
49- PROVIDE ( __pi_arm64_use_ng_mappings = arm64_use_ng_mappings );
45+ PI_EXPORT_SYM ( id_aa64isar1_override );
46+ PI_EXPORT_SYM ( id_aa64isar2_override );
47+ PI_EXPORT_SYM ( id_aa64mmfr0_override );
48+ PI_EXPORT_SYM ( id_aa64mmfr1_override );
49+ PI_EXPORT_SYM ( id_aa64mmfr2_override );
50+ PI_EXPORT_SYM ( id_aa64pfr0_override );
51+ PI_EXPORT_SYM ( id_aa64pfr1_override );
52+ PI_EXPORT_SYM ( id_aa64smfr0_override );
53+ PI_EXPORT_SYM ( id_aa64zfr0_override );
54+ PI_EXPORT_SYM ( arm64_sw_feature_override );
55+ PI_EXPORT_SYM ( arm64_use_ng_mappings );
5056#ifdef CONFIG_CAVIUM_ERRATUM_27456
51- PROVIDE ( __pi_cavium_erratum_27456_cpus = cavium_erratum_27456_cpus );
52- PROVIDE ( __pi_is_midr_in_range_list = is_midr_in_range_list );
57+ PI_EXPORT_SYM ( cavium_erratum_27456_cpus );
58+ PI_EXPORT_SYM ( is_midr_in_range_list );
5359#endif
54- PROVIDE (__pi__ctype = _ctype );
55-
56- PROVIDE (__pi_swapper_pg_dir = swapper_pg_dir );
57-
58- PROVIDE (__pi__text = _text );
59- PROVIDE (__pi__stext = _stext );
60- PROVIDE (__pi__etext = _etext );
61- PROVIDE (__pi___start_rodata = __start_rodata );
62- PROVIDE (__pi___inittext_begin = __inittext_begin );
63- PROVIDE (__pi___inittext_end = __inittext_end );
64- PROVIDE (__pi___initdata_begin = __initdata_begin );
65- PROVIDE (__pi___initdata_end = __initdata_end );
66- PROVIDE (__pi__data = _data );
67- PROVIDE (__pi___bss_start = __bss_start );
68- PROVIDE (__pi__end = _end );
60+ PI_EXPORT_SYM (_ctype );
61+
62+ PI_EXPORT_SYM (swapper_pg_dir );
63+
64+ PI_EXPORT_SYM (_text );
65+ PI_EXPORT_SYM (_stext );
66+ PI_EXPORT_SYM (_etext );
67+ PI_EXPORT_SYM (__start_rodata );
68+ PI_EXPORT_SYM (__inittext_begin );
69+ PI_EXPORT_SYM (__inittext_end );
70+ PI_EXPORT_SYM (__initdata_begin );
71+ PI_EXPORT_SYM (__initdata_end );
72+ PI_EXPORT_SYM (_data );
6973
7074#ifdef CONFIG_KVM
7175
0 commit comments