bsps: Simplify FreeBSD linker sets

This commit is contained in:
Sebastian Huber
2013-12-04 15:39:20 +01:00
parent 287bbb65af
commit e4927eceff
7 changed files with 34 additions and 94 deletions

View File

@@ -260,20 +260,15 @@ SECTIONS {
.got : ALIGN_WITH_INPUT { .got : ALIGN_WITH_INPUT {
*(.got.plt) *(.igot.plt) *(.got) *(.igot) *(.got.plt) *(.igot.plt) *(.got) *(.igot)
} > REGION_RODATA AT > REGION_RODATA_LOAD } > REGION_RODATA AT > REGION_RODATA_LOAD
.robsdsets : ALIGN_WITH_INPUT { .rtemsroset : ALIGN_WITH_INPUT {
/* Special FreeBSD linker set sections */ /* Special FreeBSD linker set sections */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
__stop_set_sysctl_set = .; __stop_set_sysctl_set = .;
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
_bsd__start_set_modmetadata_set = .;
*(_bsd_set_modmetadata_set);
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
KEEP (*(SORT(.rtemsroset.*)))
bsp_section_rodata_end = .; bsp_section_rodata_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD } > REGION_RODATA AT > REGION_RODATA_LOAD
bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin; bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
@@ -352,12 +347,8 @@ SECTIONS {
.data1 : ALIGN_WITH_INPUT { .data1 : ALIGN_WITH_INPUT {
*(.data1) *(.data1)
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD
.rwbsdsets : ALIGN_WITH_INPUT { .rtemsrwset : ALIGN_WITH_INPUT {
/* Special FreeBSD linker set sections */ KEEP (*(SORT(.rtemsrwset.*)))
_bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_set);
_bsd__stop_set_sysinit_set = .;
bsp_section_data_end = .; bsp_section_data_end = .;
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD
bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin; bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;

View File

@@ -73,7 +73,7 @@ SECTIONS
} =0x90909090 } =0x90909090
.robsdsets : { .rtemsroset : {
/* for pre rtems-libbsd FreeBSD code */ /* for pre rtems-libbsd FreeBSD code */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
@@ -81,20 +81,7 @@ SECTIONS
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
/* for rtems-libbsd FreeBSD code */ KEEP (*(SORT(.rtemsroset.*)))
_bsd__start_set_modmetadata_set = .;
*(_bsd_set_modmetadata_set);
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
_bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_*);
_bsd__stop_set_sysinit_set = .;
bsp_section_rodata_end = .;
} =0x90909090 } =0x90909090
.init : .init :
@@ -184,6 +171,7 @@ SECTIONS
SORT(CONSTRUCTORS) SORT(CONSTRUCTORS)
} }
.data1 : { *(.data1) } .data1 : { *(.data1) }
.rtemsrwset : { KEEP (*(SORT(.rtemsrwset.*))) }
_edata = .; PROVIDE (edata = .); _edata = .; PROVIDE (edata = .);
__bss_start = .; __bss_start = .;
.bss : .bss :

View File

@@ -30,7 +30,7 @@ SECTIONS
*(.eh_frame) *(.eh_frame)
} }
.robsdsets : { .rtemsroset : {
/* for pre rtems-libbsd FreeBSD code */ /* for pre rtems-libbsd FreeBSD code */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
@@ -38,18 +38,7 @@ SECTIONS
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
/* for rtems-libbsd FreeBSD code */ KEEP (*(SORT(.rtemsroset.*)))
_bsd__start_set_modmetadata_set = .;
*(_bsd_set_modmetadata_set);
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
_bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_*);
_bsd__stop_set_sysinit_set = .;
. = ALIGN (16); . = ALIGN (16);
_endtext = .; _endtext = .;
@@ -114,6 +103,10 @@ SECTIONS
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
SORT(CONSTRUCTORS) SORT(CONSTRUCTORS)
} }
.rtemsrwset : {
KEEP (*(SORT(.rtemsrwset.*)))
}
. = ALIGN(8); . = ALIGN(8);
.jcr : { .jcr : {

View File

@@ -75,7 +75,7 @@ SECTIONS
_etext = .; _etext = .;
} }
.robsdsets : { .rtemsroset : {
/* for pre rtems-libbsd FreeBSD code */ /* for pre rtems-libbsd FreeBSD code */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
@@ -83,18 +83,7 @@ SECTIONS
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
/* for rtems-libbsd FreeBSD code */ KEEP (*(SORT(.rtemsroset.*)))
_bsd__start_set_modmetadata_set = .;
*(_bsd_set_modmetadata_set);
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
_bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_*);
_bsd__stop_set_sysinit_set = .;
. = ALIGN (16); . = ALIGN (16);
_endtext = .; _endtext = .;
@@ -114,6 +103,11 @@ SECTIONS
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
SORT(CONSTRUCTORS) SORT(CONSTRUCTORS)
} }
.rtemsrwset : {
KEEP (*(SORT(.rtemsrwset.*)))
}
. = ALIGN(8); . = ALIGN(8);
.jcr : { .jcr : {

View File

@@ -226,20 +226,15 @@ SECTIONS {
.rela.plt : ALIGN_WITH_INPUT { .rela.plt : ALIGN_WITH_INPUT {
*(.rela.plt) *(.rela.plt)
} > REGION_RODATA AT > REGION_RODATA_LOAD } > REGION_RODATA AT > REGION_RODATA_LOAD
.robsdsets : ALIGN_WITH_INPUT { .rtemsroset : ALIGN_WITH_INPUT {
/* Special FreeBSD linker set sections */ /* Special FreeBSD linker set sections */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
__stop_set_sysctl_set = .; __stop_set_sysctl_set = .;
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
_bsd__start_set_modmetadata_set = .;
*(_bsd_set_modmetadata_set);
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
_bsd__stop_set_sysctl_set = .;
KEEP (*(SORT(.rtemsroset.*)))
bsp_section_rodata_end = .; bsp_section_rodata_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD } > REGION_RODATA AT > REGION_RODATA_LOAD
bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin; bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
@@ -268,11 +263,8 @@ SECTIONS {
.data1 : ALIGN_WITH_INPUT { .data1 : ALIGN_WITH_INPUT {
*(.data1) *(.data1)
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD
.rwbsdsets : ALIGN_WITH_INPUT { .rtemsrwset : ALIGN_WITH_INPUT {
/* Special FreeBSD linker set sections */ KEEP (*(SORT(.rtemsrwset.*)))
_bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_set);
_bsd__stop_set_sysinit_set = .;
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD
.sdata : ALIGN_WITH_INPUT { .sdata : ALIGN_WITH_INPUT {
PROVIDE (_SDA_BASE_ = 32768); PROVIDE (_SDA_BASE_ = 32768);

View File

@@ -157,7 +157,7 @@ SECTIONS
*(.dtors) *(.dtors)
___dtors_end = .; ___dtors_end = .;
} }
.robsdsets : { .rtemsroset : {
/* for pre rtems-libbsd FreeBSD code */ /* for pre rtems-libbsd FreeBSD code */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
@@ -165,20 +165,10 @@ SECTIONS
*(set_domain_*); *(set_domain_*);
*(set_pseudo_*); *(set_pseudo_*);
/* for rtems-libbsd FreeBSD code */ KEEP (*(SORT(.rtemsroset.*)))
__bsd__start_set_modmetadata_set = .; } >ram
*(_bsd_set_modmetadata_set); .rtemsrwset : {
__bsd__stop_set_modmetadata_set = .; KEEP (*(SORT(.rtemsrwset.*)))
__bsd__start_set_sysctl_set = .;
*(_bsd_set_sysctl_set);
__bsd__stop_set_sysctl_set = .;
__bsd__start_set_sysinit_set = .;
*(_bsd_set_sysinit_*);
__bsd__stop_set_sysinit_set = .;
_bsp_section_rodata_end = .;
} >ram } >ram
.got . : { *(.got.plt) *(.got) } .got . : { *(.got.plt) *(.got) }

View File

@@ -108,7 +108,7 @@ SECTIONS
*(.shdata) *(.shdata)
. = ALIGN (16); . = ALIGN (16);
} > ram } > ram
.robsdsets : { .rtemsroset : {
/* for pre rtems-libbsd FreeBSD code */ /* for pre rtems-libbsd FreeBSD code */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
KEEP(*(set_sysctl_*)); KEEP(*(set_sysctl_*));
@@ -116,18 +116,7 @@ SECTIONS
KEEP(*(set_domain_*)); KEEP(*(set_domain_*));
KEEP(*(set_pseudo_*)); KEEP(*(set_pseudo_*));
/* for rtems-libbsd FreeBSD code */ KEEP (*(SORT(.rtemsroset.*)))
_bsd__start_set_modmetadata_set = .;
KEEP(*(_bsd_set_modmetadata_set));
_bsd__stop_set_modmetadata_set = .;
_bsd__start_set_sysctl_set = .;
KEEP(*(_bsd_set_sysctl_set));
_bsd__stop_set_sysctl_set = .;
_bsd__start_set_sysinit_set = .;
KEEP(*(_bsd_set_sysinit_*));
_bsd__stop_set_sysinit_set = .;
. = ALIGN (16); . = ALIGN (16);
_endtext = .; _endtext = .;
@@ -158,6 +147,9 @@ SECTIONS
edata = .; edata = .;
_edata = .; _edata = .;
} > ram } > ram
.rtemsrwset : {
KEEP (*(SORT(.rtemsrwset.*)))
} >ram
.dynamic : { *(.dynamic) } >ram .dynamic : { *(.dynamic) } >ram
.jcr : { *(.jcr) } >ram .jcr : { *(.jcr) } >ram
.got : { *(.got) } >ram .got : { *(.got) } >ram