10
10
#error This file should only be included in vmlinux.lds.S
11
11
#endif
12
12
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
+
13
19
PROVIDE (__efistub_primary_entry = primary_entry );
14
20
15
21
/*
@@ -36,36 +42,34 @@ PROVIDE(__pi___memcpy = __pi_memcpy);
36
42
PROVIDE (__pi___memmove = __pi_memmove );
37
43
PROVIDE (__pi___memset = __pi_memset );
38
44
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 );
50
56
#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 );
53
59
#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 );
69
73
70
74
#ifdef CONFIG_KVM
71
75
0 commit comments