@@ -187,8 +187,6 @@ struct PacEnumItem {
187
187
max_number : usize ,
188
188
/// A map from discriminant values to variant names
189
189
numbers : HashMap < usize , Ident > ,
190
- /// Whether `_vector_table` should be a weak symbol
191
- weak_vector_table : bool ,
192
190
}
193
191
194
192
impl PacEnumItem {
@@ -227,7 +225,6 @@ impl PacEnumItem {
227
225
name,
228
226
max_number,
229
227
numbers,
230
- weak_vector_table : false ,
231
228
}
232
229
}
233
230
@@ -268,11 +265,6 @@ impl PacEnumItem {
268
265
}
269
266
270
267
fn vector_table ( & self ) -> TokenStream2 {
271
- let weak = if self . weak_vector_table {
272
- "weak"
273
- } else {
274
- "global"
275
- } ;
276
268
let mut align = match std:: env:: var ( "RISCV_MTVEC_ALIGN" ) {
277
269
Ok ( x) => x. parse :: < u32 > ( ) . ok ( ) ,
278
270
Err ( std:: env:: VarError :: NotPresent ) => Some ( 4 ) ,
@@ -296,7 +288,7 @@ impl PacEnumItem {
296
288
#[cfg(all(feature = "v-trap", any(target_arch = "riscv32", target_arch = "riscv64")))]
297
289
core::arch::global_asm!("
298
290
.section .trap, \"ax\"
299
- .{weak} _vector_table
291
+ .global _vector_table
300
292
.type _vector_table, @function
301
293
302
294
.option push
@@ -462,27 +454,3 @@ pub fn pac_enum(attr: TokenStream, item: TokenStream) -> TokenStream {
462
454
}
463
455
. into ( )
464
456
}
465
-
466
- #[ proc_macro]
467
- /// Generates a weak '_vector_table' function in assembly.
468
- ///
469
- /// The alignment constraint (in bytes) is read from the `RISCV_MTVEC_ALIGN` environment variable
470
- /// and defaults to 4.
471
- pub fn vector_table ( _input : TokenStream ) -> TokenStream {
472
- let span = proc_macro2:: Span :: call_site ( ) ;
473
- let pac = PacEnumItem {
474
- name : Ident :: new ( "unused" , span) ,
475
- max_number : 11 ,
476
- numbers : [
477
- ( 1 , Ident :: new ( "SupervisorSoft" , span) ) ,
478
- ( 3 , Ident :: new ( "MachineSoft" , span) ) ,
479
- ( 5 , Ident :: new ( "SupervisorTimer" , span) ) ,
480
- ( 7 , Ident :: new ( "MachineTimer" , span) ) ,
481
- ( 9 , Ident :: new ( "SupervisorExternal" , span) ) ,
482
- ( 11 , Ident :: new ( "MachineExternal" , span) ) ,
483
- ]
484
- . into ( ) ,
485
- weak_vector_table : true ,
486
- } ;
487
- pac. vector_table ( ) . into ( )
488
- }
0 commit comments