@@ -836,14 +836,14 @@ static const char *linker_symbols[] =
836
836
837
837
enum mismatch {
838
838
NO_MISMATCH ,
839
- TEXT_TO_INIT ,
840
- DATA_TO_INIT ,
841
- TEXT_TO_EXIT ,
842
- DATA_TO_EXIT ,
843
- XXXINIT_TO_INIT ,
844
- XXXEXIT_TO_EXIT ,
845
- INIT_TO_EXIT ,
846
- EXIT_TO_INIT ,
839
+ TEXT_TO_ANY_INIT ,
840
+ DATA_TO_ANY_INIT ,
841
+ TEXT_TO_ANY_EXIT ,
842
+ DATA_TO_ANY_EXIT ,
843
+ XXXINIT_TO_SOME_INIT ,
844
+ XXXEXIT_TO_SOME_EXIT ,
845
+ ANY_INIT_TO_ANY_EXIT ,
846
+ ANY_EXIT_TO_ANY_INIT ,
847
847
EXPORT_TO_INIT_EXIT ,
848
848
};
849
849
@@ -860,70 +860,70 @@ const struct sectioncheck sectioncheck[] = {
860
860
{
861
861
.fromsec = { TEXT_SECTIONS , NULL },
862
862
.tosec = { ALL_INIT_SECTIONS , NULL },
863
- .mismatch = TEXT_TO_INIT ,
863
+ .mismatch = TEXT_TO_ANY_INIT ,
864
864
},
865
865
{
866
866
.fromsec = { DATA_SECTIONS , NULL },
867
867
.tosec = { ALL_INIT_SECTIONS , NULL },
868
- .mismatch = DATA_TO_INIT ,
868
+ .mismatch = DATA_TO_ANY_INIT ,
869
869
},
870
870
{
871
871
.fromsec = { TEXT_SECTIONS , NULL },
872
872
.tosec = { ALL_EXIT_SECTIONS , NULL },
873
- .mismatch = TEXT_TO_EXIT ,
873
+ .mismatch = TEXT_TO_ANY_EXIT ,
874
874
},
875
875
{
876
876
.fromsec = { DATA_SECTIONS , NULL },
877
877
.tosec = { ALL_EXIT_SECTIONS , NULL },
878
- .mismatch = DATA_TO_EXIT ,
878
+ .mismatch = DATA_TO_ANY_EXIT ,
879
879
},
880
880
/* Do not reference init code/data from devinit/cpuinit/meminit code/data */
881
881
{
882
882
.fromsec = { ALL_XXXINIT_SECTIONS , NULL },
883
883
.tosec = { INIT_SECTIONS , NULL },
884
- .mismatch = XXXINIT_TO_INIT ,
884
+ .mismatch = XXXINIT_TO_SOME_INIT ,
885
885
},
886
886
/* Do not reference cpuinit code/data from meminit code/data */
887
887
{
888
888
.fromsec = { MEM_INIT_SECTIONS , NULL },
889
889
.tosec = { CPU_INIT_SECTIONS , NULL },
890
- .mismatch = XXXINIT_TO_INIT ,
890
+ .mismatch = XXXINIT_TO_SOME_INIT ,
891
891
},
892
892
/* Do not reference meminit code/data from cpuinit code/data */
893
893
{
894
894
.fromsec = { CPU_INIT_SECTIONS , NULL },
895
895
.tosec = { MEM_INIT_SECTIONS , NULL },
896
- .mismatch = XXXINIT_TO_INIT ,
896
+ .mismatch = XXXINIT_TO_SOME_INIT ,
897
897
},
898
898
/* Do not reference exit code/data from devexit/cpuexit/memexit code/data */
899
899
{
900
900
.fromsec = { ALL_XXXEXIT_SECTIONS , NULL },
901
901
.tosec = { EXIT_SECTIONS , NULL },
902
- .mismatch = XXXEXIT_TO_EXIT ,
902
+ .mismatch = XXXEXIT_TO_SOME_EXIT ,
903
903
},
904
904
/* Do not reference cpuexit code/data from memexit code/data */
905
905
{
906
906
.fromsec = { MEM_EXIT_SECTIONS , NULL },
907
907
.tosec = { CPU_EXIT_SECTIONS , NULL },
908
- .mismatch = XXXEXIT_TO_EXIT ,
908
+ .mismatch = XXXEXIT_TO_SOME_EXIT ,
909
909
},
910
910
/* Do not reference memexit code/data from cpuexit code/data */
911
911
{
912
912
.fromsec = { CPU_EXIT_SECTIONS , NULL },
913
913
.tosec = { MEM_EXIT_SECTIONS , NULL },
914
- .mismatch = XXXEXIT_TO_EXIT ,
914
+ .mismatch = XXXEXIT_TO_SOME_EXIT ,
915
915
},
916
916
/* Do not use exit code/data from init code */
917
917
{
918
918
.fromsec = { ALL_INIT_SECTIONS , NULL },
919
919
.tosec = { ALL_EXIT_SECTIONS , NULL },
920
- .mismatch = INIT_TO_EXIT ,
920
+ .mismatch = ANY_INIT_TO_ANY_EXIT ,
921
921
},
922
922
/* Do not use init code/data from exit code */
923
923
{
924
924
.fromsec = { ALL_EXIT_SECTIONS , NULL },
925
925
.tosec = { ALL_INIT_SECTIONS , NULL },
926
- .mismatch = EXIT_TO_INIT ,
926
+ .mismatch = ANY_EXIT_TO_ANY_INIT ,
927
927
},
928
928
/* Do not export init/exit functions or data */
929
929
{
@@ -1190,7 +1190,7 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1190
1190
tosym , to_p );
1191
1191
1192
1192
switch (mismatch ) {
1193
- case TEXT_TO_INIT :
1193
+ case TEXT_TO_ANY_INIT :
1194
1194
fprintf (stderr ,
1195
1195
"The function %s%s() references\n"
1196
1196
"the %s %s%s%s.\n"
@@ -1200,7 +1200,7 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1200
1200
to , sec2annotation (tosec ), tosym , to_p ,
1201
1201
fromsym , sec2annotation (tosec ), tosym );
1202
1202
break ;
1203
- case DATA_TO_INIT : {
1203
+ case DATA_TO_ANY_INIT : {
1204
1204
const char * * s = symbol_white_list ;
1205
1205
fprintf (stderr ,
1206
1206
"The variable %s references\n"
@@ -1214,14 +1214,14 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1214
1214
fprintf (stderr , "\n" );
1215
1215
break ;
1216
1216
}
1217
- case TEXT_TO_EXIT :
1217
+ case TEXT_TO_ANY_EXIT :
1218
1218
fprintf (stderr ,
1219
1219
"The function %s() references a %s in an exit section.\n"
1220
1220
"Often the %s %s%s has valid usage outside the exit section\n"
1221
1221
"and the fix is to remove the %sannotation of %s.\n" ,
1222
1222
fromsym , to , to , tosym , to_p , sec2annotation (tosec ), tosym );
1223
1223
break ;
1224
- case DATA_TO_EXIT : {
1224
+ case DATA_TO_ANY_EXIT : {
1225
1225
const char * * s = symbol_white_list ;
1226
1226
fprintf (stderr ,
1227
1227
"The variable %s references\n"
@@ -1235,8 +1235,8 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1235
1235
fprintf (stderr , "\n" );
1236
1236
break ;
1237
1237
}
1238
- case XXXINIT_TO_INIT :
1239
- case XXXEXIT_TO_EXIT :
1238
+ case XXXINIT_TO_SOME_INIT :
1239
+ case XXXEXIT_TO_SOME_EXIT :
1240
1240
fprintf (stderr ,
1241
1241
"The %s %s%s%s references\n"
1242
1242
"a %s %s%s%s.\n"
@@ -1246,7 +1246,7 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1246
1246
to , sec2annotation (tosec ), tosym , to_p ,
1247
1247
tosym , fromsym , tosym );
1248
1248
break ;
1249
- case INIT_TO_EXIT :
1249
+ case ANY_INIT_TO_ANY_EXIT :
1250
1250
fprintf (stderr ,
1251
1251
"The %s %s%s%s references\n"
1252
1252
"a %s %s%s%s.\n"
@@ -1259,7 +1259,7 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
1259
1259
to , sec2annotation (tosec ), tosym , to_p ,
1260
1260
sec2annotation (tosec ), tosym , to_p );
1261
1261
break ;
1262
- case EXIT_TO_INIT :
1262
+ case ANY_EXIT_TO_ANY_INIT :
1263
1263
fprintf (stderr ,
1264
1264
"The %s %s%s%s references\n"
1265
1265
"a %s %s%s%s.\n"
0 commit comments