diff --git a/docs/file_format/settings.md b/docs/file_format/settings.md index 3b54ec8..fa78433 100644 --- a/docs/file_format/settings.md +++ b/docs/file_format/settings.md @@ -357,9 +357,9 @@ Boolean. `False` -## `partial_scripts_path` +## `partial_scripts_folder` -## `partial_build_segments_path` +## `partial_build_segments_folder` ## `alloc_sections` diff --git a/slinky-cli/src/main.rs b/slinky-cli/src/main.rs index 9090e12..5c9c234 100644 --- a/slinky-cli/src/main.rs +++ b/slinky-cli/src/main.rs @@ -18,7 +18,7 @@ struct Cli { output: Option, /// Generate linker script for partial linking multiple segments. - /// Requires both `partial_scripts_path` and `partial_build_segments_path` YAML settings to be set. + /// Requires both `partial_scripts_folder` and `partial_build_segments_folder` YAML settings to be set. #[arg(short, long, default_value_t = false)] partial_linking: bool, } @@ -34,7 +34,7 @@ fn main() { if cli.partial_linking { let mut writer = slinky::PartialLinkerWriter::new(&document.settings); - writer.add_all_segment(&document.segments); + writer.add_all_segments(&document.segments); let output_path = cli .output diff --git a/slinky/src/partial_linker_writer.rs b/slinky/src/partial_linker_writer.rs index 5821696..97fdfa8 100644 --- a/slinky/src/partial_linker_writer.rs +++ b/slinky/src/partial_linker_writer.rs @@ -27,7 +27,7 @@ impl<'a> PartialLinkerWriter<'a> { } } - pub fn add_all_segment(&mut self, segments: &[Segment]) { + pub fn add_all_segments(&mut self, segments: &[Segment]) { self.main_writer.begin_sections(); self.partial_writers.reserve(segments.len()); @@ -41,7 +41,7 @@ impl<'a> PartialLinkerWriter<'a> { let mut p = PathBuf::new(); - p.push(&self.settings.partial_build_segments_path); + p.push(&self.settings.partial_build_segments_folder); p.push(&format!("{}.o", segment.name)); let mut reference_segment = segment.clone(); @@ -68,7 +68,7 @@ impl<'a> PartialLinkerWriter<'a> { for (partial, name) in &self.partial_writers { let mut p = PathBuf::new(); - p.push(&self.settings.partial_scripts_path); + p.push(&self.settings.partial_scripts_folder); p.push(&format!("{}.ld", name)); partial.save_linker_script(&p)?; @@ -80,9 +80,9 @@ impl<'a> PartialLinkerWriter<'a> { pub fn write_other_files(&self) -> Result<(), SlinkyError> { self.main_writer.write_other_files()?; - for (partial, _name) in &self.partial_writers { - partial.write_other_files()?; - } + //for (partial, _name) in &self.partial_writers { + // partial.write_other_files()?; + //} Ok(()) } diff --git a/slinky/src/settings.rs b/slinky/src/settings.rs index f7d5eec..44f5315 100644 --- a/slinky/src/settings.rs +++ b/slinky/src/settings.rs @@ -29,8 +29,8 @@ pub struct Settings { pub single_segment_mode: bool, - pub partial_scripts_path: PathBuf, - pub partial_build_segments_path: PathBuf, + pub partial_scripts_folder: PathBuf, + pub partial_build_segments_folder: PathBuf, // Options passed down to each segment pub alloc_sections: Vec, @@ -106,11 +106,11 @@ const fn settings_default_single_segment_mode() -> bool { false } -fn settings_default_partial_scripts_path() -> PathBuf { +fn settings_default_partial_scripts_folder() -> PathBuf { PathBuf::new() } -fn settings_default_partial_build_segments_path() -> PathBuf { +fn settings_default_partial_build_segments_folder() -> PathBuf { PathBuf::new() } @@ -174,8 +174,8 @@ impl Default for Settings { single_segment_mode: settings_default_single_segment_mode(), - partial_scripts_path: settings_default_partial_scripts_path(), - partial_build_segments_path: settings_default_partial_build_segments_path(), + partial_scripts_folder: settings_default_partial_scripts_folder(), + partial_build_segments_folder: settings_default_partial_build_segments_folder(), alloc_sections: settings_default_alloc_sections(), noload_sections: settings_default_noload_sections(), @@ -227,9 +227,9 @@ pub(crate) struct SettingsSerial { pub single_segment_mode: AbsentNullable, #[serde(default)] - pub partial_scripts_path: AbsentNullable, + pub partial_scripts_folder: AbsentNullable, #[serde(default)] - pub partial_build_segments_path: AbsentNullable, + pub partial_build_segments_folder: AbsentNullable, // Options passed down to each Segment #[serde(default)] @@ -302,13 +302,13 @@ impl SettingsSerial { .single_segment_mode .get_non_null("single_segment_mode", settings_default_single_segment_mode)?; - let partial_scripts_path = self.partial_scripts_path.get_non_null( - "partial_scripts_path", - settings_default_partial_scripts_path, + let partial_scripts_folder = self.partial_scripts_folder.get_non_null( + "partial_scripts_folder", + settings_default_partial_scripts_folder, )?; - let partial_build_segments_path = self.partial_build_segments_path.get_non_null( - "partial_build_segments_path", - settings_default_partial_build_segments_path, + let partial_build_segments_folder = self.partial_build_segments_folder.get_non_null( + "partial_build_segments_folder", + settings_default_partial_build_segments_folder, )?; if d_path.is_some() && target_path.is_none() { @@ -364,8 +364,8 @@ impl SettingsSerial { single_segment_mode, - partial_scripts_path, - partial_build_segments_path, + partial_scripts_folder, + partial_build_segments_folder, alloc_sections, noload_sections, diff --git a/slinky/tests/integration_test.rs b/slinky/tests/integration_test.rs index 0f11238..5fca665 100644 --- a/slinky/tests/integration_test.rs +++ b/slinky/tests/integration_test.rs @@ -70,3 +70,34 @@ fn test_symbols_header_generation(#[files("../tests/test_cases/*.h")] h_path: Pa fn test_panic_invalid_yamls(#[files("../tests/panics/*.yaml")] path: PathBuf) { slinky::Document::read_file(&path).unwrap(); } + +#[rstest] +fn test_partial_linking_script_generation(#[files("../tests/partial_linking/*.ld")] ld_path: PathBuf) { + let yaml_path = ld_path.with_extension("yaml"); + + //check_ld_generation(&yaml_path, &ld_path); + let document = slinky::Document::read_file(&yaml_path).expect("unable to read original file"); + + let mut writer = slinky::PartialLinkerWriter::new(&document.settings); + writer.add_all_segments(&document.segments); + + let expected_ld_contents = + fs::read_to_string(ld_path).expect("unable to read expected ld file"); + + assert_eq!(expected_ld_contents, writer.get_main_writer().export_as_string()); + + + for (partial, name) in writer.get_partial_writers() { + let mut p = PathBuf::new(); + + p.push(".."); + p.push(&document.settings.partial_scripts_folder); + p.push(&format!("{}.ld", name)); + + //partial.save_linker_script(&p)?; + let expected_partial_ld_contents = + fs::read_to_string(p).expect("unable to read expected ld file"); + + assert_eq!(expected_partial_ld_contents, partial.export_as_string()); + } +} diff --git a/test.ld b/test.ld deleted file mode 100644 index 0b9ef73..0000000 --- a/test.ld +++ /dev/null @@ -1,1475 +0,0 @@ -SECTIONS -{ - .text : - { - FILL(0x00000000); - boot_TEXT_START = .; - build/us/src/boot/boot_main.o(.text*); - build/us/src/boot/dmadata.o(.text*); - build/us/src/gzip/inflate.o(.text*); - build/us/src/gzip/unzip.o(.text*); - build/us/src/boot/util.o(.text*); - build/us/src/boot/rom_offsets.o(.text*); - build/us/lib/ultralib/src/io/conteepprobe.o(.text*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.text*); - build/us/lib/ultralib/src/io/conteeplongread.o(.text*); - build/us/lib/ultralib/src/io/pimgr.o(.text*); - build/us/lib/ultralib/src/io/epirawdma.o(.text*); - build/us/lib/ultralib/src/io/epidma.o(.text*); - build/us/lib/ultralib/src/io/cartrominit.o(.text*); - build/us/lib/ultralib/src/io/devmgr.o(.text*); - build/us/lib/ultralib/src/io/piacs.o(.text*); - build/us/lib/ultralib/src/io/pidma.o(.text*); - build/us/lib/ultralib/src/io/aigetlen.o(.text*); - build/us/lib/ultralib/src/io/aigetstat.o(.text*); - build/us/lib/ultralib/src/io/aisetfreq.o(.text*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.text*); - build/us/lib/ultralib/src/audio/env.o(.text*); - build/us/lib/ultralib/src/audio/sl.o(.text*); - build/us/lib/ultralib/src/audio/heapinit.o(.text*); - build/us/lib/ultralib/src/audio/synthesizer.o(.text*); - build/us/lib/ultralib/src/audio/syndelete.o(.text*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.text*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.text*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.text*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.text*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.text*); - build/us/lib/ultralib/src/audio/synsetvol.o(.text*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.text*); - build/us/lib/ultralib/src/audio/synsetpan.o(.text*); - build/us/lib/ultralib/src/audio/synallocfx.o(.text*); - build/us/lib/ultralib/src/os/invaldcache.o(.text*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.text*); - build/us/lib/ultralib/src/io/contquery.o(.text*); - build/us/lib/ultralib/src/io/contreaddata.o(.text*); - build/us/lib/ultralib/src/io/controller.o(.text*); - build/us/lib/ultralib/src/io/contsetch.o(.text*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.text*); - build/us/lib/ultralib/src/gu/sqrtf.o(.text*); - build/us/lib/ultralib/src/gu/cosf.o(.text*); - build/us/lib/ultralib/src/gu/ortho.o(.text*); - build/us/lib/ultralib/src/gu/perspective.o(.text*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.text*); - build/us/lib/ultralib/src/gu/sinf.o(.text*); - build/us/lib/ultralib/src/gu/sins.o(.text*); - build/us/lib/ultralib/src/libc/bcmp.o(.text*); - build/us/lib/ultralib/src/libc/bcopy.o(.text*); - build/us/lib/ultralib/src/libc/bzero.o(.text*); - build/us/lib/ultralib/src/libc/string.o(.text*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.text*); - build/us/lib/ultralib/src/os/jammesg.o(.text*); - build/us/lib/ultralib/src/os/recvmesg.o(.text*); - build/us/lib/ultralib/src/os/sendmesg.o(.text*); - build/us/lib/ultralib/src/os/seteventmesg.o(.text*); - build/us/lib/ultralib/src/io/sptask.o(.text*); - build/us/lib/ultralib/src/io/sptaskyield.o(.text*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.text*); - build/us/lib/ultralib/src/sched/sched.o(.text*); - build/us/lib/ultralib/src/io/sirawdma.o(.text*); - build/us/lib/ultralib/src/io/siacs.o(.text*); - build/us/lib/ultralib/src/os/createthread.o(.text*); - build/us/lib/ultralib/src/os/getthreadpri.o(.text*); - build/us/lib/ultralib/src/os/setthreadpri.o(.text*); - build/us/lib/ultralib/src/os/startthread.o(.text*); - build/us/lib/ultralib/src/os/stopthread.o(.text*); - build/us/lib/ultralib/src/os/thread.o(.text*); - build/us/lib/ultralib/src/os/yieldthread.o(.text*); - build/us/lib/ultralib/src/os/gettime.o(.text*); - build/us/lib/ultralib/src/os/settime.o(.text*); - build/us/lib/ultralib/src/os/settimer.o(.text*); - build/us/lib/ultralib/src/os/timerintr.o(.text*); - build/us/lib/ultralib/src/os/probetlb.o(.text*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.text*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.text*); - build/us/lib/ultralib/src/io/vimgr.o(.text*); - build/us/lib/ultralib/src/io/vitbl.o(.text*); - build/us/lib/ultralib/src/io/visetevent.o(.text*); - build/us/lib/ultralib/src/io/visetmode.o(.text*); - build/us/lib/ultralib/src/io/visetspecial.o(.text*); - build/us/lib/ultralib/src/io/visetyscale.o(.text*); - build/us/lib/ultralib/src/io/viswapbuf.o(.text*); - build/us/lib/ultralib/src/io/viswapcontext.o(.text*); - build/us/lib/ultralib/src/io/viblack.o(.text*); - build/us/lib/ultralib/src/mgu/mtxident.o(.text*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.text*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.text*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.text*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.text*); - build/us/lib/ultralib/src/mgu/scale.o(.text*); - build/us/lib/ultralib/src/mgu/scalef.o(.text*); - build/us/lib/ultralib/src/mgu/translate.o(.text*); - build/us/lib/ultralib/src/mgu/translatef.o(.text*); - build/us/lib/ultralib/src/os/initialize.o(.text*); - build/us/lib/ultralib/src/io/conteepread.o(.text*); - build/us/lib/ultralib/src/io/conteepwrite.o(.text*); - build/us/lib/ultralib/src/os/exceptasm.o(.text*); - build/us/lib/ultralib/src/os/interrupt.o(.text*); - build/us/lib/ultralib/src/os/setintmask.o(.text*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.text*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.text*); - build/us/lib/ultralib/src/io/pirawdma.o(.text*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.text*); - build/us/lib/ultralib/src/io/epirawread.o(.text*); - build/us/lib/ultralib/src/io/epirawwrite.o(.text*); - build/us/lib/ultralib/src/io/ai.o(.text*); - build/us/lib/ultralib/src/audio/drvrnew.o(.text*); - build/us/lib/ultralib/src/audio/load.o(.text*); - build/us/lib/ultralib/src/audio/auxbus.o(.text*); - build/us/lib/ultralib/src/audio/filter.o(.text*); - build/us/lib/ultralib/src/audio/mainbus.o(.text*); - build/us/lib/ultralib/src/audio/resample.o(.text*); - build/us/lib/ultralib/src/audio/reverb.o(.text*); - build/us/lib/ultralib/src/audio/save.o(.text*); - build/us/lib/ultralib/src/audio/heapalloc.o(.text*); - build/us/lib/ultralib/src/audio/copy.o(.text*); - build/us/lib/ultralib/src/os/invalicache.o(.text*); - build/us/lib/ultralib/src/os/writebackdcache.o(.text*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.text*); - build/us/lib/ultralib/src/os/getcause.o(.text*); - build/us/lib/ultralib/src/os/getcount.o(.text*); - build/us/lib/ultralib/src/os/getsr.o(.text*); - build/us/lib/ultralib/src/os/setcompare.o(.text*); - build/us/lib/ultralib/src/os/setfpccsr.o(.text*); - build/us/lib/ultralib/src/os/setsr.o(.text*); - build/us/lib/ultralib/src/os/setwatchlo.o(.text*); - build/us/lib/ultralib/src/io/sp.o(.text*); - build/us/lib/ultralib/src/io/spgetstat.o(.text*); - build/us/lib/ultralib/src/io/spsetstat.o(.text*); - build/us/lib/ultralib/src/io/spsetpc.o(.text*); - build/us/lib/ultralib/src/io/sprawdma.o(.text*); - build/us/lib/ultralib/src/io/sirawread.o(.text*); - build/us/lib/ultralib/src/io/sirawwrite.o(.text*); - build/us/lib/ultralib/src/os/destroythread.o(.text*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.text*); - build/us/lib/ultralib/src/os/unmaptlball.o(.text*); - build/us/lib/ultralib/src/io/vi.o(.text*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.text*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.text*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.text*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.text*); - build/us/lib/ultralib/src/os/parameters.o(.text*); - build/us/lib/ultralib/src/gu/libm_vals.o(.text*); - build/us/lib/ultralib/src/io/dp.o(.text*); - build/us/lib/ultralib/src/io/si.o(.text*); - build/us/src/libkmc/fmod.o(.text*); - build/us/src/libkmc/memmove.o(.text*); - build/us/src/libkmc/memset.o(.text*); - build/us/src/libkmc/modf.o(.text*); - build/us/src/libkmc/rand.o(.text*); - build/us/src/libkmc/strcpy.o(.text*); - build/us/src/libkmc/mmuldi3.o(.text*); - build/us/src/libkmc/ctype.o(.text*); - build/us/asm/us/data/boot/8001B640.bss.o(.text*); - . = ALIGN(., 0x10); - boot_TEXT_END = .; - boot_TEXT_SIZE = ABSOLUTE(boot_TEXT_END - boot_TEXT_START); - } - - .data : - { - FILL(0x00000000); - boot_DATA_START = .; - build/us/src/boot/boot_main.o(.data*); - build/us/src/boot/dmadata.o(.data*); - build/us/src/gzip/inflate.o(.data*); - build/us/src/gzip/unzip.o(.data*); - build/us/src/boot/util.o(.data*); - build/us/src/boot/rom_offsets.o(.data*); - build/us/lib/ultralib/src/io/conteepprobe.o(.data*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.data*); - build/us/lib/ultralib/src/io/conteeplongread.o(.data*); - build/us/lib/ultralib/src/io/pimgr.o(.data*); - build/us/lib/ultralib/src/io/epirawdma.o(.data*); - build/us/lib/ultralib/src/io/epidma.o(.data*); - build/us/lib/ultralib/src/io/cartrominit.o(.data*); - build/us/lib/ultralib/src/io/devmgr.o(.data*); - build/us/lib/ultralib/src/io/piacs.o(.data*); - build/us/lib/ultralib/src/io/pidma.o(.data*); - build/us/lib/ultralib/src/io/aigetlen.o(.data*); - build/us/lib/ultralib/src/io/aigetstat.o(.data*); - build/us/lib/ultralib/src/io/aisetfreq.o(.data*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.data*); - build/us/lib/ultralib/src/audio/env.o(.data*); - build/us/lib/ultralib/src/audio/sl.o(.data*); - build/us/lib/ultralib/src/audio/heapinit.o(.data*); - build/us/lib/ultralib/src/audio/synthesizer.o(.data*); - build/us/lib/ultralib/src/audio/syndelete.o(.data*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.data*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.data*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.data*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.data*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.data*); - build/us/lib/ultralib/src/audio/synsetvol.o(.data*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.data*); - build/us/lib/ultralib/src/audio/synsetpan.o(.data*); - build/us/lib/ultralib/src/audio/synallocfx.o(.data*); - build/us/lib/ultralib/src/os/invaldcache.o(.data*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.data*); - build/us/lib/ultralib/src/io/contquery.o(.data*); - build/us/lib/ultralib/src/io/contreaddata.o(.data*); - build/us/lib/ultralib/src/io/controller.o(.data*); - build/us/lib/ultralib/src/io/contsetch.o(.data*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.data*); - build/us/lib/ultralib/src/gu/sqrtf.o(.data*); - build/us/lib/ultralib/src/gu/cosf.o(.data*); - build/us/lib/ultralib/src/gu/ortho.o(.data*); - build/us/lib/ultralib/src/gu/perspective.o(.data*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.data*); - build/us/lib/ultralib/src/gu/sinf.o(.data*); - build/us/lib/ultralib/src/gu/sins.o(.data*); - build/us/lib/ultralib/src/libc/bcmp.o(.data*); - build/us/lib/ultralib/src/libc/bcopy.o(.data*); - build/us/lib/ultralib/src/libc/bzero.o(.data*); - build/us/lib/ultralib/src/libc/string.o(.data*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.data*); - build/us/lib/ultralib/src/os/jammesg.o(.data*); - build/us/lib/ultralib/src/os/recvmesg.o(.data*); - build/us/lib/ultralib/src/os/sendmesg.o(.data*); - build/us/lib/ultralib/src/os/seteventmesg.o(.data*); - build/us/lib/ultralib/src/io/sptask.o(.data*); - build/us/lib/ultralib/src/io/sptaskyield.o(.data*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.data*); - build/us/lib/ultralib/src/sched/sched.o(.data*); - build/us/lib/ultralib/src/io/sirawdma.o(.data*); - build/us/lib/ultralib/src/io/siacs.o(.data*); - build/us/lib/ultralib/src/os/createthread.o(.data*); - build/us/lib/ultralib/src/os/getthreadpri.o(.data*); - build/us/lib/ultralib/src/os/setthreadpri.o(.data*); - build/us/lib/ultralib/src/os/startthread.o(.data*); - build/us/lib/ultralib/src/os/stopthread.o(.data*); - build/us/lib/ultralib/src/os/thread.o(.data*); - build/us/lib/ultralib/src/os/yieldthread.o(.data*); - build/us/lib/ultralib/src/os/gettime.o(.data*); - build/us/lib/ultralib/src/os/settime.o(.data*); - build/us/lib/ultralib/src/os/settimer.o(.data*); - build/us/lib/ultralib/src/os/timerintr.o(.data*); - build/us/lib/ultralib/src/os/probetlb.o(.data*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.data*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.data*); - build/us/lib/ultralib/src/io/vimgr.o(.data*); - build/us/lib/ultralib/src/io/vitbl.o(.data*); - build/us/lib/ultralib/src/io/visetevent.o(.data*); - build/us/lib/ultralib/src/io/visetmode.o(.data*); - build/us/lib/ultralib/src/io/visetspecial.o(.data*); - build/us/lib/ultralib/src/io/visetyscale.o(.data*); - build/us/lib/ultralib/src/io/viswapbuf.o(.data*); - build/us/lib/ultralib/src/io/viswapcontext.o(.data*); - build/us/lib/ultralib/src/io/viblack.o(.data*); - build/us/lib/ultralib/src/mgu/mtxident.o(.data*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.data*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.data*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.data*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.data*); - build/us/lib/ultralib/src/mgu/scale.o(.data*); - build/us/lib/ultralib/src/mgu/scalef.o(.data*); - build/us/lib/ultralib/src/mgu/translate.o(.data*); - build/us/lib/ultralib/src/mgu/translatef.o(.data*); - build/us/lib/ultralib/src/os/initialize.o(.data*); - build/us/lib/ultralib/src/io/conteepread.o(.data*); - build/us/lib/ultralib/src/io/conteepwrite.o(.data*); - build/us/lib/ultralib/src/os/exceptasm.o(.data*); - build/us/lib/ultralib/src/os/interrupt.o(.data*); - build/us/lib/ultralib/src/os/setintmask.o(.data*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.data*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.data*); - build/us/lib/ultralib/src/io/pirawdma.o(.data*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.data*); - build/us/lib/ultralib/src/io/epirawread.o(.data*); - build/us/lib/ultralib/src/io/epirawwrite.o(.data*); - build/us/lib/ultralib/src/io/ai.o(.data*); - build/us/lib/ultralib/src/audio/drvrnew.o(.data*); - build/us/lib/ultralib/src/audio/load.o(.data*); - build/us/lib/ultralib/src/audio/auxbus.o(.data*); - build/us/lib/ultralib/src/audio/filter.o(.data*); - build/us/lib/ultralib/src/audio/mainbus.o(.data*); - build/us/lib/ultralib/src/audio/resample.o(.data*); - build/us/lib/ultralib/src/audio/reverb.o(.data*); - build/us/lib/ultralib/src/audio/save.o(.data*); - build/us/lib/ultralib/src/audio/heapalloc.o(.data*); - build/us/lib/ultralib/src/audio/copy.o(.data*); - build/us/lib/ultralib/src/os/invalicache.o(.data*); - build/us/lib/ultralib/src/os/writebackdcache.o(.data*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.data*); - build/us/lib/ultralib/src/os/getcause.o(.data*); - build/us/lib/ultralib/src/os/getcount.o(.data*); - build/us/lib/ultralib/src/os/getsr.o(.data*); - build/us/lib/ultralib/src/os/setcompare.o(.data*); - build/us/lib/ultralib/src/os/setfpccsr.o(.data*); - build/us/lib/ultralib/src/os/setsr.o(.data*); - build/us/lib/ultralib/src/os/setwatchlo.o(.data*); - build/us/lib/ultralib/src/io/sp.o(.data*); - build/us/lib/ultralib/src/io/spgetstat.o(.data*); - build/us/lib/ultralib/src/io/spsetstat.o(.data*); - build/us/lib/ultralib/src/io/spsetpc.o(.data*); - build/us/lib/ultralib/src/io/sprawdma.o(.data*); - build/us/lib/ultralib/src/io/sirawread.o(.data*); - build/us/lib/ultralib/src/io/sirawwrite.o(.data*); - build/us/lib/ultralib/src/os/destroythread.o(.data*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.data*); - build/us/lib/ultralib/src/os/unmaptlball.o(.data*); - build/us/lib/ultralib/src/io/vi.o(.data*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.data*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.data*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.data*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.data*); - build/us/lib/ultralib/src/os/parameters.o(.data*); - build/us/lib/ultralib/src/gu/libm_vals.o(.data*); - build/us/lib/ultralib/src/io/dp.o(.data*); - build/us/lib/ultralib/src/io/si.o(.data*); - build/us/src/libkmc/fmod.o(.data*); - build/us/src/libkmc/memmove.o(.data*); - build/us/src/libkmc/memset.o(.data*); - build/us/src/libkmc/modf.o(.data*); - build/us/src/libkmc/rand.o(.data*); - build/us/src/libkmc/strcpy.o(.data*); - build/us/src/libkmc/mmuldi3.o(.data*); - build/us/src/libkmc/ctype.o(.data*); - build/us/asm/us/data/boot/8001B640.bss.o(.data*); - . = ALIGN(., 0x10); - boot_DATA_END = .; - boot_DATA_SIZE = ABSOLUTE(boot_DATA_END - boot_DATA_START); - } - - .rodata : - { - FILL(0x00000000); - boot_RODATA_START = .; - build/us/src/boot/boot_main.o(.rodata*); - build/us/src/boot/dmadata.o(.rodata*); - build/us/src/gzip/inflate.o(.rodata*); - build/us/src/gzip/unzip.o(.rodata*); - build/us/src/boot/util.o(.rodata*); - build/us/src/boot/rom_offsets.o(.rodata*); - build/us/lib/ultralib/src/io/conteepprobe.o(.rodata*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.rodata*); - build/us/lib/ultralib/src/io/conteeplongread.o(.rodata*); - build/us/lib/ultralib/src/io/pimgr.o(.rodata*); - build/us/lib/ultralib/src/io/epirawdma.o(.rodata*); - build/us/lib/ultralib/src/io/epidma.o(.rodata*); - build/us/lib/ultralib/src/io/cartrominit.o(.rodata*); - build/us/lib/ultralib/src/io/devmgr.o(.rodata*); - build/us/lib/ultralib/src/io/piacs.o(.rodata*); - build/us/lib/ultralib/src/io/pidma.o(.rodata*); - build/us/lib/ultralib/src/io/aigetlen.o(.rodata*); - build/us/lib/ultralib/src/io/aigetstat.o(.rodata*); - build/us/lib/ultralib/src/io/aisetfreq.o(.rodata*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.rodata*); - build/us/lib/ultralib/src/audio/env.o(.rodata*); - build/us/lib/ultralib/src/audio/sl.o(.rodata*); - build/us/lib/ultralib/src/audio/heapinit.o(.rodata*); - build/us/lib/ultralib/src/audio/synthesizer.o(.rodata*); - build/us/lib/ultralib/src/audio/syndelete.o(.rodata*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.rodata*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.rodata*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.rodata*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.rodata*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.rodata*); - build/us/lib/ultralib/src/audio/synsetvol.o(.rodata*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.rodata*); - build/us/lib/ultralib/src/audio/synsetpan.o(.rodata*); - build/us/lib/ultralib/src/audio/synallocfx.o(.rodata*); - build/us/lib/ultralib/src/os/invaldcache.o(.rodata*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.rodata*); - build/us/lib/ultralib/src/io/contquery.o(.rodata*); - build/us/lib/ultralib/src/io/contreaddata.o(.rodata*); - build/us/lib/ultralib/src/io/controller.o(.rodata*); - build/us/lib/ultralib/src/io/contsetch.o(.rodata*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.rodata*); - build/us/lib/ultralib/src/gu/sqrtf.o(.rodata*); - build/us/lib/ultralib/src/gu/cosf.o(.rodata*); - build/us/lib/ultralib/src/gu/ortho.o(.rodata*); - build/us/lib/ultralib/src/gu/perspective.o(.rodata*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.rodata*); - build/us/lib/ultralib/src/gu/sinf.o(.rodata*); - build/us/lib/ultralib/src/gu/sins.o(.rodata*); - build/us/lib/ultralib/src/libc/bcmp.o(.rodata*); - build/us/lib/ultralib/src/libc/bcopy.o(.rodata*); - build/us/lib/ultralib/src/libc/bzero.o(.rodata*); - build/us/lib/ultralib/src/libc/string.o(.rodata*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.rodata*); - build/us/lib/ultralib/src/os/jammesg.o(.rodata*); - build/us/lib/ultralib/src/os/recvmesg.o(.rodata*); - build/us/lib/ultralib/src/os/sendmesg.o(.rodata*); - build/us/lib/ultralib/src/os/seteventmesg.o(.rodata*); - build/us/lib/ultralib/src/io/sptask.o(.rodata*); - build/us/lib/ultralib/src/io/sptaskyield.o(.rodata*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.rodata*); - build/us/lib/ultralib/src/sched/sched.o(.rodata*); - build/us/lib/ultralib/src/io/sirawdma.o(.rodata*); - build/us/lib/ultralib/src/io/siacs.o(.rodata*); - build/us/lib/ultralib/src/os/createthread.o(.rodata*); - build/us/lib/ultralib/src/os/getthreadpri.o(.rodata*); - build/us/lib/ultralib/src/os/setthreadpri.o(.rodata*); - build/us/lib/ultralib/src/os/startthread.o(.rodata*); - build/us/lib/ultralib/src/os/stopthread.o(.rodata*); - build/us/lib/ultralib/src/os/thread.o(.rodata*); - build/us/lib/ultralib/src/os/yieldthread.o(.rodata*); - build/us/lib/ultralib/src/os/gettime.o(.rodata*); - build/us/lib/ultralib/src/os/settime.o(.rodata*); - build/us/lib/ultralib/src/os/settimer.o(.rodata*); - build/us/lib/ultralib/src/os/timerintr.o(.rodata*); - build/us/lib/ultralib/src/os/probetlb.o(.rodata*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.rodata*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.rodata*); - build/us/lib/ultralib/src/io/vimgr.o(.rodata*); - build/us/lib/ultralib/src/io/vitbl.o(.rodata*); - build/us/lib/ultralib/src/io/visetevent.o(.rodata*); - build/us/lib/ultralib/src/io/visetmode.o(.rodata*); - build/us/lib/ultralib/src/io/visetspecial.o(.rodata*); - build/us/lib/ultralib/src/io/visetyscale.o(.rodata*); - build/us/lib/ultralib/src/io/viswapbuf.o(.rodata*); - build/us/lib/ultralib/src/io/viswapcontext.o(.rodata*); - build/us/lib/ultralib/src/io/viblack.o(.rodata*); - build/us/lib/ultralib/src/mgu/mtxident.o(.rodata*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.rodata*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.rodata*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.rodata*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.rodata*); - build/us/lib/ultralib/src/mgu/scale.o(.rodata*); - build/us/lib/ultralib/src/mgu/scalef.o(.rodata*); - build/us/lib/ultralib/src/mgu/translate.o(.rodata*); - build/us/lib/ultralib/src/mgu/translatef.o(.rodata*); - build/us/lib/ultralib/src/os/initialize.o(.rodata*); - build/us/lib/ultralib/src/io/conteepread.o(.rodata*); - build/us/lib/ultralib/src/io/conteepwrite.o(.rodata*); - build/us/lib/ultralib/src/os/exceptasm.o(.rodata*); - build/us/lib/ultralib/src/os/interrupt.o(.rodata*); - build/us/lib/ultralib/src/os/setintmask.o(.rodata*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.rodata*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.rodata*); - build/us/lib/ultralib/src/io/pirawdma.o(.rodata*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.rodata*); - build/us/lib/ultralib/src/io/epirawread.o(.rodata*); - build/us/lib/ultralib/src/io/epirawwrite.o(.rodata*); - build/us/lib/ultralib/src/io/ai.o(.rodata*); - build/us/lib/ultralib/src/audio/drvrnew.o(.rodata*); - build/us/lib/ultralib/src/audio/load.o(.rodata*); - build/us/lib/ultralib/src/audio/auxbus.o(.rodata*); - build/us/lib/ultralib/src/audio/filter.o(.rodata*); - build/us/lib/ultralib/src/audio/mainbus.o(.rodata*); - build/us/lib/ultralib/src/audio/resample.o(.rodata*); - build/us/lib/ultralib/src/audio/reverb.o(.rodata*); - build/us/lib/ultralib/src/audio/save.o(.rodata*); - build/us/lib/ultralib/src/audio/heapalloc.o(.rodata*); - build/us/lib/ultralib/src/audio/copy.o(.rodata*); - build/us/lib/ultralib/src/os/invalicache.o(.rodata*); - build/us/lib/ultralib/src/os/writebackdcache.o(.rodata*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.rodata*); - build/us/lib/ultralib/src/os/getcause.o(.rodata*); - build/us/lib/ultralib/src/os/getcount.o(.rodata*); - build/us/lib/ultralib/src/os/getsr.o(.rodata*); - build/us/lib/ultralib/src/os/setcompare.o(.rodata*); - build/us/lib/ultralib/src/os/setfpccsr.o(.rodata*); - build/us/lib/ultralib/src/os/setsr.o(.rodata*); - build/us/lib/ultralib/src/os/setwatchlo.o(.rodata*); - build/us/lib/ultralib/src/io/sp.o(.rodata*); - build/us/lib/ultralib/src/io/spgetstat.o(.rodata*); - build/us/lib/ultralib/src/io/spsetstat.o(.rodata*); - build/us/lib/ultralib/src/io/spsetpc.o(.rodata*); - build/us/lib/ultralib/src/io/sprawdma.o(.rodata*); - build/us/lib/ultralib/src/io/sirawread.o(.rodata*); - build/us/lib/ultralib/src/io/sirawwrite.o(.rodata*); - build/us/lib/ultralib/src/os/destroythread.o(.rodata*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.rodata*); - build/us/lib/ultralib/src/os/unmaptlball.o(.rodata*); - build/us/lib/ultralib/src/io/vi.o(.rodata*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.rodata*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.rodata*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.rodata*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.rodata*); - build/us/lib/ultralib/src/os/parameters.o(.rodata*); - build/us/lib/ultralib/src/gu/libm_vals.o(.rodata*); - build/us/lib/ultralib/src/io/dp.o(.rodata*); - build/us/lib/ultralib/src/io/si.o(.rodata*); - build/us/src/libkmc/fmod.o(.rodata*); - build/us/src/libkmc/memmove.o(.rodata*); - build/us/src/libkmc/memset.o(.rodata*); - build/us/src/libkmc/modf.o(.rodata*); - build/us/src/libkmc/rand.o(.rodata*); - build/us/src/libkmc/strcpy.o(.rodata*); - build/us/src/libkmc/mmuldi3.o(.rodata*); - build/us/src/libkmc/ctype.o(.rodata*); - build/us/asm/us/data/boot/8001B640.bss.o(.rodata*); - . = ALIGN(., 0x10); - boot_RODATA_END = .; - boot_RODATA_SIZE = ABSOLUTE(boot_RODATA_END - boot_RODATA_START); - } - - .sdata : - { - FILL(0x00000000); - boot_SDATA_START = .; - build/us/src/boot/boot_main.o(.sdata*); - build/us/src/boot/dmadata.o(.sdata*); - build/us/src/gzip/inflate.o(.sdata*); - build/us/src/gzip/unzip.o(.sdata*); - build/us/src/boot/util.o(.sdata*); - build/us/src/boot/rom_offsets.o(.sdata*); - build/us/lib/ultralib/src/io/conteepprobe.o(.sdata*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.sdata*); - build/us/lib/ultralib/src/io/conteeplongread.o(.sdata*); - build/us/lib/ultralib/src/io/pimgr.o(.sdata*); - build/us/lib/ultralib/src/io/epirawdma.o(.sdata*); - build/us/lib/ultralib/src/io/epidma.o(.sdata*); - build/us/lib/ultralib/src/io/cartrominit.o(.sdata*); - build/us/lib/ultralib/src/io/devmgr.o(.sdata*); - build/us/lib/ultralib/src/io/piacs.o(.sdata*); - build/us/lib/ultralib/src/io/pidma.o(.sdata*); - build/us/lib/ultralib/src/io/aigetlen.o(.sdata*); - build/us/lib/ultralib/src/io/aigetstat.o(.sdata*); - build/us/lib/ultralib/src/io/aisetfreq.o(.sdata*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.sdata*); - build/us/lib/ultralib/src/audio/env.o(.sdata*); - build/us/lib/ultralib/src/audio/sl.o(.sdata*); - build/us/lib/ultralib/src/audio/heapinit.o(.sdata*); - build/us/lib/ultralib/src/audio/synthesizer.o(.sdata*); - build/us/lib/ultralib/src/audio/syndelete.o(.sdata*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.sdata*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.sdata*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.sdata*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.sdata*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.sdata*); - build/us/lib/ultralib/src/audio/synsetvol.o(.sdata*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.sdata*); - build/us/lib/ultralib/src/audio/synsetpan.o(.sdata*); - build/us/lib/ultralib/src/audio/synallocfx.o(.sdata*); - build/us/lib/ultralib/src/os/invaldcache.o(.sdata*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.sdata*); - build/us/lib/ultralib/src/io/contquery.o(.sdata*); - build/us/lib/ultralib/src/io/contreaddata.o(.sdata*); - build/us/lib/ultralib/src/io/controller.o(.sdata*); - build/us/lib/ultralib/src/io/contsetch.o(.sdata*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.sdata*); - build/us/lib/ultralib/src/gu/sqrtf.o(.sdata*); - build/us/lib/ultralib/src/gu/cosf.o(.sdata*); - build/us/lib/ultralib/src/gu/ortho.o(.sdata*); - build/us/lib/ultralib/src/gu/perspective.o(.sdata*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.sdata*); - build/us/lib/ultralib/src/gu/sinf.o(.sdata*); - build/us/lib/ultralib/src/gu/sins.o(.sdata*); - build/us/lib/ultralib/src/libc/bcmp.o(.sdata*); - build/us/lib/ultralib/src/libc/bcopy.o(.sdata*); - build/us/lib/ultralib/src/libc/bzero.o(.sdata*); - build/us/lib/ultralib/src/libc/string.o(.sdata*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.sdata*); - build/us/lib/ultralib/src/os/jammesg.o(.sdata*); - build/us/lib/ultralib/src/os/recvmesg.o(.sdata*); - build/us/lib/ultralib/src/os/sendmesg.o(.sdata*); - build/us/lib/ultralib/src/os/seteventmesg.o(.sdata*); - build/us/lib/ultralib/src/io/sptask.o(.sdata*); - build/us/lib/ultralib/src/io/sptaskyield.o(.sdata*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.sdata*); - build/us/lib/ultralib/src/sched/sched.o(.sdata*); - build/us/lib/ultralib/src/io/sirawdma.o(.sdata*); - build/us/lib/ultralib/src/io/siacs.o(.sdata*); - build/us/lib/ultralib/src/os/createthread.o(.sdata*); - build/us/lib/ultralib/src/os/getthreadpri.o(.sdata*); - build/us/lib/ultralib/src/os/setthreadpri.o(.sdata*); - build/us/lib/ultralib/src/os/startthread.o(.sdata*); - build/us/lib/ultralib/src/os/stopthread.o(.sdata*); - build/us/lib/ultralib/src/os/thread.o(.sdata*); - build/us/lib/ultralib/src/os/yieldthread.o(.sdata*); - build/us/lib/ultralib/src/os/gettime.o(.sdata*); - build/us/lib/ultralib/src/os/settime.o(.sdata*); - build/us/lib/ultralib/src/os/settimer.o(.sdata*); - build/us/lib/ultralib/src/os/timerintr.o(.sdata*); - build/us/lib/ultralib/src/os/probetlb.o(.sdata*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.sdata*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.sdata*); - build/us/lib/ultralib/src/io/vimgr.o(.sdata*); - build/us/lib/ultralib/src/io/vitbl.o(.sdata*); - build/us/lib/ultralib/src/io/visetevent.o(.sdata*); - build/us/lib/ultralib/src/io/visetmode.o(.sdata*); - build/us/lib/ultralib/src/io/visetspecial.o(.sdata*); - build/us/lib/ultralib/src/io/visetyscale.o(.sdata*); - build/us/lib/ultralib/src/io/viswapbuf.o(.sdata*); - build/us/lib/ultralib/src/io/viswapcontext.o(.sdata*); - build/us/lib/ultralib/src/io/viblack.o(.sdata*); - build/us/lib/ultralib/src/mgu/mtxident.o(.sdata*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.sdata*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.sdata*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.sdata*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.sdata*); - build/us/lib/ultralib/src/mgu/scale.o(.sdata*); - build/us/lib/ultralib/src/mgu/scalef.o(.sdata*); - build/us/lib/ultralib/src/mgu/translate.o(.sdata*); - build/us/lib/ultralib/src/mgu/translatef.o(.sdata*); - build/us/lib/ultralib/src/os/initialize.o(.sdata*); - build/us/lib/ultralib/src/io/conteepread.o(.sdata*); - build/us/lib/ultralib/src/io/conteepwrite.o(.sdata*); - build/us/lib/ultralib/src/os/exceptasm.o(.sdata*); - build/us/lib/ultralib/src/os/interrupt.o(.sdata*); - build/us/lib/ultralib/src/os/setintmask.o(.sdata*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.sdata*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.sdata*); - build/us/lib/ultralib/src/io/pirawdma.o(.sdata*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.sdata*); - build/us/lib/ultralib/src/io/epirawread.o(.sdata*); - build/us/lib/ultralib/src/io/epirawwrite.o(.sdata*); - build/us/lib/ultralib/src/io/ai.o(.sdata*); - build/us/lib/ultralib/src/audio/drvrnew.o(.sdata*); - build/us/lib/ultralib/src/audio/load.o(.sdata*); - build/us/lib/ultralib/src/audio/auxbus.o(.sdata*); - build/us/lib/ultralib/src/audio/filter.o(.sdata*); - build/us/lib/ultralib/src/audio/mainbus.o(.sdata*); - build/us/lib/ultralib/src/audio/resample.o(.sdata*); - build/us/lib/ultralib/src/audio/reverb.o(.sdata*); - build/us/lib/ultralib/src/audio/save.o(.sdata*); - build/us/lib/ultralib/src/audio/heapalloc.o(.sdata*); - build/us/lib/ultralib/src/audio/copy.o(.sdata*); - build/us/lib/ultralib/src/os/invalicache.o(.sdata*); - build/us/lib/ultralib/src/os/writebackdcache.o(.sdata*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.sdata*); - build/us/lib/ultralib/src/os/getcause.o(.sdata*); - build/us/lib/ultralib/src/os/getcount.o(.sdata*); - build/us/lib/ultralib/src/os/getsr.o(.sdata*); - build/us/lib/ultralib/src/os/setcompare.o(.sdata*); - build/us/lib/ultralib/src/os/setfpccsr.o(.sdata*); - build/us/lib/ultralib/src/os/setsr.o(.sdata*); - build/us/lib/ultralib/src/os/setwatchlo.o(.sdata*); - build/us/lib/ultralib/src/io/sp.o(.sdata*); - build/us/lib/ultralib/src/io/spgetstat.o(.sdata*); - build/us/lib/ultralib/src/io/spsetstat.o(.sdata*); - build/us/lib/ultralib/src/io/spsetpc.o(.sdata*); - build/us/lib/ultralib/src/io/sprawdma.o(.sdata*); - build/us/lib/ultralib/src/io/sirawread.o(.sdata*); - build/us/lib/ultralib/src/io/sirawwrite.o(.sdata*); - build/us/lib/ultralib/src/os/destroythread.o(.sdata*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.sdata*); - build/us/lib/ultralib/src/os/unmaptlball.o(.sdata*); - build/us/lib/ultralib/src/io/vi.o(.sdata*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.sdata*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.sdata*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.sdata*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.sdata*); - build/us/lib/ultralib/src/os/parameters.o(.sdata*); - build/us/lib/ultralib/src/gu/libm_vals.o(.sdata*); - build/us/lib/ultralib/src/io/dp.o(.sdata*); - build/us/lib/ultralib/src/io/si.o(.sdata*); - build/us/src/libkmc/fmod.o(.sdata*); - build/us/src/libkmc/memmove.o(.sdata*); - build/us/src/libkmc/memset.o(.sdata*); - build/us/src/libkmc/modf.o(.sdata*); - build/us/src/libkmc/rand.o(.sdata*); - build/us/src/libkmc/strcpy.o(.sdata*); - build/us/src/libkmc/mmuldi3.o(.sdata*); - build/us/src/libkmc/ctype.o(.sdata*); - build/us/asm/us/data/boot/8001B640.bss.o(.sdata*); - . = ALIGN(., 0x10); - boot_SDATA_END = .; - boot_SDATA_SIZE = ABSOLUTE(boot_SDATA_END - boot_SDATA_START); - } - - .sbss (NOLOAD) : - { - FILL(0x00000000); - boot_SBSS_START = .; - build/us/src/boot/boot_main.o(.sbss*); - build/us/src/boot/dmadata.o(.sbss*); - build/us/src/gzip/inflate.o(.sbss*); - build/us/src/gzip/unzip.o(.sbss*); - build/us/src/boot/util.o(.sbss*); - build/us/src/boot/rom_offsets.o(.sbss*); - build/us/lib/ultralib/src/io/conteepprobe.o(.sbss*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.sbss*); - build/us/lib/ultralib/src/io/conteeplongread.o(.sbss*); - build/us/lib/ultralib/src/io/pimgr.o(.sbss*); - build/us/lib/ultralib/src/io/epirawdma.o(.sbss*); - build/us/lib/ultralib/src/io/epidma.o(.sbss*); - build/us/lib/ultralib/src/io/cartrominit.o(.sbss*); - build/us/lib/ultralib/src/io/devmgr.o(.sbss*); - build/us/lib/ultralib/src/io/piacs.o(.sbss*); - build/us/lib/ultralib/src/io/pidma.o(.sbss*); - build/us/lib/ultralib/src/io/aigetlen.o(.sbss*); - build/us/lib/ultralib/src/io/aigetstat.o(.sbss*); - build/us/lib/ultralib/src/io/aisetfreq.o(.sbss*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.sbss*); - build/us/lib/ultralib/src/audio/env.o(.sbss*); - build/us/lib/ultralib/src/audio/sl.o(.sbss*); - build/us/lib/ultralib/src/audio/heapinit.o(.sbss*); - build/us/lib/ultralib/src/audio/synthesizer.o(.sbss*); - build/us/lib/ultralib/src/audio/syndelete.o(.sbss*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.sbss*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.sbss*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.sbss*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.sbss*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.sbss*); - build/us/lib/ultralib/src/audio/synsetvol.o(.sbss*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.sbss*); - build/us/lib/ultralib/src/audio/synsetpan.o(.sbss*); - build/us/lib/ultralib/src/audio/synallocfx.o(.sbss*); - build/us/lib/ultralib/src/os/invaldcache.o(.sbss*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.sbss*); - build/us/lib/ultralib/src/io/contquery.o(.sbss*); - build/us/lib/ultralib/src/io/contreaddata.o(.sbss*); - build/us/lib/ultralib/src/io/controller.o(.sbss*); - build/us/lib/ultralib/src/io/contsetch.o(.sbss*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.sbss*); - build/us/lib/ultralib/src/gu/sqrtf.o(.sbss*); - build/us/lib/ultralib/src/gu/cosf.o(.sbss*); - build/us/lib/ultralib/src/gu/ortho.o(.sbss*); - build/us/lib/ultralib/src/gu/perspective.o(.sbss*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.sbss*); - build/us/lib/ultralib/src/gu/sinf.o(.sbss*); - build/us/lib/ultralib/src/gu/sins.o(.sbss*); - build/us/lib/ultralib/src/libc/bcmp.o(.sbss*); - build/us/lib/ultralib/src/libc/bcopy.o(.sbss*); - build/us/lib/ultralib/src/libc/bzero.o(.sbss*); - build/us/lib/ultralib/src/libc/string.o(.sbss*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.sbss*); - build/us/lib/ultralib/src/os/jammesg.o(.sbss*); - build/us/lib/ultralib/src/os/recvmesg.o(.sbss*); - build/us/lib/ultralib/src/os/sendmesg.o(.sbss*); - build/us/lib/ultralib/src/os/seteventmesg.o(.sbss*); - build/us/lib/ultralib/src/io/sptask.o(.sbss*); - build/us/lib/ultralib/src/io/sptaskyield.o(.sbss*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.sbss*); - build/us/lib/ultralib/src/sched/sched.o(.sbss*); - build/us/lib/ultralib/src/io/sirawdma.o(.sbss*); - build/us/lib/ultralib/src/io/siacs.o(.sbss*); - build/us/lib/ultralib/src/os/createthread.o(.sbss*); - build/us/lib/ultralib/src/os/getthreadpri.o(.sbss*); - build/us/lib/ultralib/src/os/setthreadpri.o(.sbss*); - build/us/lib/ultralib/src/os/startthread.o(.sbss*); - build/us/lib/ultralib/src/os/stopthread.o(.sbss*); - build/us/lib/ultralib/src/os/thread.o(.sbss*); - build/us/lib/ultralib/src/os/yieldthread.o(.sbss*); - build/us/lib/ultralib/src/os/gettime.o(.sbss*); - build/us/lib/ultralib/src/os/settime.o(.sbss*); - build/us/lib/ultralib/src/os/settimer.o(.sbss*); - build/us/lib/ultralib/src/os/timerintr.o(.sbss*); - build/us/lib/ultralib/src/os/probetlb.o(.sbss*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.sbss*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.sbss*); - build/us/lib/ultralib/src/io/vimgr.o(.sbss*); - build/us/lib/ultralib/src/io/vitbl.o(.sbss*); - build/us/lib/ultralib/src/io/visetevent.o(.sbss*); - build/us/lib/ultralib/src/io/visetmode.o(.sbss*); - build/us/lib/ultralib/src/io/visetspecial.o(.sbss*); - build/us/lib/ultralib/src/io/visetyscale.o(.sbss*); - build/us/lib/ultralib/src/io/viswapbuf.o(.sbss*); - build/us/lib/ultralib/src/io/viswapcontext.o(.sbss*); - build/us/lib/ultralib/src/io/viblack.o(.sbss*); - build/us/lib/ultralib/src/mgu/mtxident.o(.sbss*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.sbss*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.sbss*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.sbss*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.sbss*); - build/us/lib/ultralib/src/mgu/scale.o(.sbss*); - build/us/lib/ultralib/src/mgu/scalef.o(.sbss*); - build/us/lib/ultralib/src/mgu/translate.o(.sbss*); - build/us/lib/ultralib/src/mgu/translatef.o(.sbss*); - build/us/lib/ultralib/src/os/initialize.o(.sbss*); - build/us/lib/ultralib/src/io/conteepread.o(.sbss*); - build/us/lib/ultralib/src/io/conteepwrite.o(.sbss*); - build/us/lib/ultralib/src/os/exceptasm.o(.sbss*); - build/us/lib/ultralib/src/os/interrupt.o(.sbss*); - build/us/lib/ultralib/src/os/setintmask.o(.sbss*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.sbss*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.sbss*); - build/us/lib/ultralib/src/io/pirawdma.o(.sbss*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.sbss*); - build/us/lib/ultralib/src/io/epirawread.o(.sbss*); - build/us/lib/ultralib/src/io/epirawwrite.o(.sbss*); - build/us/lib/ultralib/src/io/ai.o(.sbss*); - build/us/lib/ultralib/src/audio/drvrnew.o(.sbss*); - build/us/lib/ultralib/src/audio/load.o(.sbss*); - build/us/lib/ultralib/src/audio/auxbus.o(.sbss*); - build/us/lib/ultralib/src/audio/filter.o(.sbss*); - build/us/lib/ultralib/src/audio/mainbus.o(.sbss*); - build/us/lib/ultralib/src/audio/resample.o(.sbss*); - build/us/lib/ultralib/src/audio/reverb.o(.sbss*); - build/us/lib/ultralib/src/audio/save.o(.sbss*); - build/us/lib/ultralib/src/audio/heapalloc.o(.sbss*); - build/us/lib/ultralib/src/audio/copy.o(.sbss*); - build/us/lib/ultralib/src/os/invalicache.o(.sbss*); - build/us/lib/ultralib/src/os/writebackdcache.o(.sbss*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.sbss*); - build/us/lib/ultralib/src/os/getcause.o(.sbss*); - build/us/lib/ultralib/src/os/getcount.o(.sbss*); - build/us/lib/ultralib/src/os/getsr.o(.sbss*); - build/us/lib/ultralib/src/os/setcompare.o(.sbss*); - build/us/lib/ultralib/src/os/setfpccsr.o(.sbss*); - build/us/lib/ultralib/src/os/setsr.o(.sbss*); - build/us/lib/ultralib/src/os/setwatchlo.o(.sbss*); - build/us/lib/ultralib/src/io/sp.o(.sbss*); - build/us/lib/ultralib/src/io/spgetstat.o(.sbss*); - build/us/lib/ultralib/src/io/spsetstat.o(.sbss*); - build/us/lib/ultralib/src/io/spsetpc.o(.sbss*); - build/us/lib/ultralib/src/io/sprawdma.o(.sbss*); - build/us/lib/ultralib/src/io/sirawread.o(.sbss*); - build/us/lib/ultralib/src/io/sirawwrite.o(.sbss*); - build/us/lib/ultralib/src/os/destroythread.o(.sbss*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.sbss*); - build/us/lib/ultralib/src/os/unmaptlball.o(.sbss*); - build/us/lib/ultralib/src/io/vi.o(.sbss*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.sbss*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.sbss*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.sbss*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.sbss*); - build/us/lib/ultralib/src/os/parameters.o(.sbss*); - build/us/lib/ultralib/src/gu/libm_vals.o(.sbss*); - build/us/lib/ultralib/src/io/dp.o(.sbss*); - build/us/lib/ultralib/src/io/si.o(.sbss*); - build/us/src/libkmc/fmod.o(.sbss*); - build/us/src/libkmc/memmove.o(.sbss*); - build/us/src/libkmc/memset.o(.sbss*); - build/us/src/libkmc/modf.o(.sbss*); - build/us/src/libkmc/rand.o(.sbss*); - build/us/src/libkmc/strcpy.o(.sbss*); - build/us/src/libkmc/mmuldi3.o(.sbss*); - build/us/src/libkmc/ctype.o(.sbss*); - build/us/asm/us/data/boot/8001B640.bss.o(.sbss*); - . = ALIGN(., 0x10); - boot_SBSS_END = .; - boot_SBSS_SIZE = ABSOLUTE(boot_SBSS_END - boot_SBSS_START); - } - - .scommon (NOLOAD) : - { - FILL(0x00000000); - boot_SCOMMON_START = .; - build/us/src/boot/boot_main.o(.scommon*); - build/us/src/boot/dmadata.o(.scommon*); - build/us/src/gzip/inflate.o(.scommon*); - build/us/src/gzip/unzip.o(.scommon*); - build/us/src/boot/util.o(.scommon*); - build/us/src/boot/rom_offsets.o(.scommon*); - build/us/lib/ultralib/src/io/conteepprobe.o(.scommon*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.scommon*); - build/us/lib/ultralib/src/io/conteeplongread.o(.scommon*); - build/us/lib/ultralib/src/io/pimgr.o(.scommon*); - build/us/lib/ultralib/src/io/epirawdma.o(.scommon*); - build/us/lib/ultralib/src/io/epidma.o(.scommon*); - build/us/lib/ultralib/src/io/cartrominit.o(.scommon*); - build/us/lib/ultralib/src/io/devmgr.o(.scommon*); - build/us/lib/ultralib/src/io/piacs.o(.scommon*); - build/us/lib/ultralib/src/io/pidma.o(.scommon*); - build/us/lib/ultralib/src/io/aigetlen.o(.scommon*); - build/us/lib/ultralib/src/io/aigetstat.o(.scommon*); - build/us/lib/ultralib/src/io/aisetfreq.o(.scommon*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.scommon*); - build/us/lib/ultralib/src/audio/env.o(.scommon*); - build/us/lib/ultralib/src/audio/sl.o(.scommon*); - build/us/lib/ultralib/src/audio/heapinit.o(.scommon*); - build/us/lib/ultralib/src/audio/synthesizer.o(.scommon*); - build/us/lib/ultralib/src/audio/syndelete.o(.scommon*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.scommon*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.scommon*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.scommon*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.scommon*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.scommon*); - build/us/lib/ultralib/src/audio/synsetvol.o(.scommon*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.scommon*); - build/us/lib/ultralib/src/audio/synsetpan.o(.scommon*); - build/us/lib/ultralib/src/audio/synallocfx.o(.scommon*); - build/us/lib/ultralib/src/os/invaldcache.o(.scommon*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.scommon*); - build/us/lib/ultralib/src/io/contquery.o(.scommon*); - build/us/lib/ultralib/src/io/contreaddata.o(.scommon*); - build/us/lib/ultralib/src/io/controller.o(.scommon*); - build/us/lib/ultralib/src/io/contsetch.o(.scommon*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.scommon*); - build/us/lib/ultralib/src/gu/sqrtf.o(.scommon*); - build/us/lib/ultralib/src/gu/cosf.o(.scommon*); - build/us/lib/ultralib/src/gu/ortho.o(.scommon*); - build/us/lib/ultralib/src/gu/perspective.o(.scommon*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.scommon*); - build/us/lib/ultralib/src/gu/sinf.o(.scommon*); - build/us/lib/ultralib/src/gu/sins.o(.scommon*); - build/us/lib/ultralib/src/libc/bcmp.o(.scommon*); - build/us/lib/ultralib/src/libc/bcopy.o(.scommon*); - build/us/lib/ultralib/src/libc/bzero.o(.scommon*); - build/us/lib/ultralib/src/libc/string.o(.scommon*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.scommon*); - build/us/lib/ultralib/src/os/jammesg.o(.scommon*); - build/us/lib/ultralib/src/os/recvmesg.o(.scommon*); - build/us/lib/ultralib/src/os/sendmesg.o(.scommon*); - build/us/lib/ultralib/src/os/seteventmesg.o(.scommon*); - build/us/lib/ultralib/src/io/sptask.o(.scommon*); - build/us/lib/ultralib/src/io/sptaskyield.o(.scommon*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.scommon*); - build/us/lib/ultralib/src/sched/sched.o(.scommon*); - build/us/lib/ultralib/src/io/sirawdma.o(.scommon*); - build/us/lib/ultralib/src/io/siacs.o(.scommon*); - build/us/lib/ultralib/src/os/createthread.o(.scommon*); - build/us/lib/ultralib/src/os/getthreadpri.o(.scommon*); - build/us/lib/ultralib/src/os/setthreadpri.o(.scommon*); - build/us/lib/ultralib/src/os/startthread.o(.scommon*); - build/us/lib/ultralib/src/os/stopthread.o(.scommon*); - build/us/lib/ultralib/src/os/thread.o(.scommon*); - build/us/lib/ultralib/src/os/yieldthread.o(.scommon*); - build/us/lib/ultralib/src/os/gettime.o(.scommon*); - build/us/lib/ultralib/src/os/settime.o(.scommon*); - build/us/lib/ultralib/src/os/settimer.o(.scommon*); - build/us/lib/ultralib/src/os/timerintr.o(.scommon*); - build/us/lib/ultralib/src/os/probetlb.o(.scommon*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.scommon*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.scommon*); - build/us/lib/ultralib/src/io/vimgr.o(.scommon*); - build/us/lib/ultralib/src/io/vitbl.o(.scommon*); - build/us/lib/ultralib/src/io/visetevent.o(.scommon*); - build/us/lib/ultralib/src/io/visetmode.o(.scommon*); - build/us/lib/ultralib/src/io/visetspecial.o(.scommon*); - build/us/lib/ultralib/src/io/visetyscale.o(.scommon*); - build/us/lib/ultralib/src/io/viswapbuf.o(.scommon*); - build/us/lib/ultralib/src/io/viswapcontext.o(.scommon*); - build/us/lib/ultralib/src/io/viblack.o(.scommon*); - build/us/lib/ultralib/src/mgu/mtxident.o(.scommon*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.scommon*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.scommon*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.scommon*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.scommon*); - build/us/lib/ultralib/src/mgu/scale.o(.scommon*); - build/us/lib/ultralib/src/mgu/scalef.o(.scommon*); - build/us/lib/ultralib/src/mgu/translate.o(.scommon*); - build/us/lib/ultralib/src/mgu/translatef.o(.scommon*); - build/us/lib/ultralib/src/os/initialize.o(.scommon*); - build/us/lib/ultralib/src/io/conteepread.o(.scommon*); - build/us/lib/ultralib/src/io/conteepwrite.o(.scommon*); - build/us/lib/ultralib/src/os/exceptasm.o(.scommon*); - build/us/lib/ultralib/src/os/interrupt.o(.scommon*); - build/us/lib/ultralib/src/os/setintmask.o(.scommon*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.scommon*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.scommon*); - build/us/lib/ultralib/src/io/pirawdma.o(.scommon*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.scommon*); - build/us/lib/ultralib/src/io/epirawread.o(.scommon*); - build/us/lib/ultralib/src/io/epirawwrite.o(.scommon*); - build/us/lib/ultralib/src/io/ai.o(.scommon*); - build/us/lib/ultralib/src/audio/drvrnew.o(.scommon*); - build/us/lib/ultralib/src/audio/load.o(.scommon*); - build/us/lib/ultralib/src/audio/auxbus.o(.scommon*); - build/us/lib/ultralib/src/audio/filter.o(.scommon*); - build/us/lib/ultralib/src/audio/mainbus.o(.scommon*); - build/us/lib/ultralib/src/audio/resample.o(.scommon*); - build/us/lib/ultralib/src/audio/reverb.o(.scommon*); - build/us/lib/ultralib/src/audio/save.o(.scommon*); - build/us/lib/ultralib/src/audio/heapalloc.o(.scommon*); - build/us/lib/ultralib/src/audio/copy.o(.scommon*); - build/us/lib/ultralib/src/os/invalicache.o(.scommon*); - build/us/lib/ultralib/src/os/writebackdcache.o(.scommon*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.scommon*); - build/us/lib/ultralib/src/os/getcause.o(.scommon*); - build/us/lib/ultralib/src/os/getcount.o(.scommon*); - build/us/lib/ultralib/src/os/getsr.o(.scommon*); - build/us/lib/ultralib/src/os/setcompare.o(.scommon*); - build/us/lib/ultralib/src/os/setfpccsr.o(.scommon*); - build/us/lib/ultralib/src/os/setsr.o(.scommon*); - build/us/lib/ultralib/src/os/setwatchlo.o(.scommon*); - build/us/lib/ultralib/src/io/sp.o(.scommon*); - build/us/lib/ultralib/src/io/spgetstat.o(.scommon*); - build/us/lib/ultralib/src/io/spsetstat.o(.scommon*); - build/us/lib/ultralib/src/io/spsetpc.o(.scommon*); - build/us/lib/ultralib/src/io/sprawdma.o(.scommon*); - build/us/lib/ultralib/src/io/sirawread.o(.scommon*); - build/us/lib/ultralib/src/io/sirawwrite.o(.scommon*); - build/us/lib/ultralib/src/os/destroythread.o(.scommon*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.scommon*); - build/us/lib/ultralib/src/os/unmaptlball.o(.scommon*); - build/us/lib/ultralib/src/io/vi.o(.scommon*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.scommon*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.scommon*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.scommon*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.scommon*); - build/us/lib/ultralib/src/os/parameters.o(.scommon*); - build/us/lib/ultralib/src/gu/libm_vals.o(.scommon*); - build/us/lib/ultralib/src/io/dp.o(.scommon*); - build/us/lib/ultralib/src/io/si.o(.scommon*); - build/us/src/libkmc/fmod.o(.scommon*); - build/us/src/libkmc/memmove.o(.scommon*); - build/us/src/libkmc/memset.o(.scommon*); - build/us/src/libkmc/modf.o(.scommon*); - build/us/src/libkmc/rand.o(.scommon*); - build/us/src/libkmc/strcpy.o(.scommon*); - build/us/src/libkmc/mmuldi3.o(.scommon*); - build/us/src/libkmc/ctype.o(.scommon*); - build/us/asm/us/data/boot/8001B640.bss.o(.scommon*); - . = ALIGN(., 0x10); - boot_SCOMMON_END = .; - boot_SCOMMON_SIZE = ABSOLUTE(boot_SCOMMON_END - boot_SCOMMON_START); - } - - .bss (NOLOAD) : - { - FILL(0x00000000); - boot_BSS_START = .; - build/us/src/boot/boot_main.o(.bss*); - build/us/src/boot/dmadata.o(.bss*); - build/us/src/gzip/inflate.o(.bss*); - build/us/src/gzip/unzip.o(.bss*); - build/us/src/boot/util.o(.bss*); - build/us/src/boot/rom_offsets.o(.bss*); - build/us/lib/ultralib/src/io/conteepprobe.o(.bss*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(.bss*); - build/us/lib/ultralib/src/io/conteeplongread.o(.bss*); - build/us/lib/ultralib/src/io/pimgr.o(.bss*); - build/us/lib/ultralib/src/io/epirawdma.o(.bss*); - build/us/lib/ultralib/src/io/epidma.o(.bss*); - build/us/lib/ultralib/src/io/cartrominit.o(.bss*); - build/us/lib/ultralib/src/io/devmgr.o(.bss*); - build/us/lib/ultralib/src/io/piacs.o(.bss*); - build/us/lib/ultralib/src/io/pidma.o(.bss*); - build/us/lib/ultralib/src/io/aigetlen.o(.bss*); - build/us/lib/ultralib/src/io/aigetstat.o(.bss*); - build/us/lib/ultralib/src/io/aisetfreq.o(.bss*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(.bss*); - build/us/lib/ultralib/src/audio/env.o(.bss*); - build/us/lib/ultralib/src/audio/sl.o(.bss*); - build/us/lib/ultralib/src/audio/heapinit.o(.bss*); - build/us/lib/ultralib/src/audio/synthesizer.o(.bss*); - build/us/lib/ultralib/src/audio/syndelete.o(.bss*); - build/us/lib/ultralib/src/audio/synaddplayer.o(.bss*); - build/us/lib/ultralib/src/audio/synallocvoice.o(.bss*); - build/us/lib/ultralib/src/audio/synstopvoice.o(.bss*); - build/us/lib/ultralib/src/audio/synstartvoice.o(.bss*); - build/us/lib/ultralib/src/audio/synsetpitch.o(.bss*); - build/us/lib/ultralib/src/audio/synsetvol.o(.bss*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(.bss*); - build/us/lib/ultralib/src/audio/synsetpan.o(.bss*); - build/us/lib/ultralib/src/audio/synallocfx.o(.bss*); - build/us/lib/ultralib/src/os/invaldcache.o(.bss*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(.bss*); - build/us/lib/ultralib/src/io/contquery.o(.bss*); - build/us/lib/ultralib/src/io/contreaddata.o(.bss*); - build/us/lib/ultralib/src/io/controller.o(.bss*); - build/us/lib/ultralib/src/io/contsetch.o(.bss*); - build/us/lib/ultralib/src/os/virtualtophysical.o(.bss*); - build/us/lib/ultralib/src/gu/sqrtf.o(.bss*); - build/us/lib/ultralib/src/gu/cosf.o(.bss*); - build/us/lib/ultralib/src/gu/ortho.o(.bss*); - build/us/lib/ultralib/src/gu/perspective.o(.bss*); - build/us/lib/ultralib/src/gu/rotaterpy.o(.bss*); - build/us/lib/ultralib/src/gu/sinf.o(.bss*); - build/us/lib/ultralib/src/gu/sins.o(.bss*); - build/us/lib/ultralib/src/libc/bcmp.o(.bss*); - build/us/lib/ultralib/src/libc/bcopy.o(.bss*); - build/us/lib/ultralib/src/libc/bzero.o(.bss*); - build/us/lib/ultralib/src/libc/string.o(.bss*); - build/us/lib/ultralib/src/os/createmesgqueue.o(.bss*); - build/us/lib/ultralib/src/os/jammesg.o(.bss*); - build/us/lib/ultralib/src/os/recvmesg.o(.bss*); - build/us/lib/ultralib/src/os/sendmesg.o(.bss*); - build/us/lib/ultralib/src/os/seteventmesg.o(.bss*); - build/us/lib/ultralib/src/io/sptask.o(.bss*); - build/us/lib/ultralib/src/io/sptaskyield.o(.bss*); - build/us/lib/ultralib/src/io/sptaskyielded.o(.bss*); - build/us/lib/ultralib/src/sched/sched.o(.bss*); - build/us/lib/ultralib/src/io/sirawdma.o(.bss*); - build/us/lib/ultralib/src/io/siacs.o(.bss*); - build/us/lib/ultralib/src/os/createthread.o(.bss*); - build/us/lib/ultralib/src/os/getthreadpri.o(.bss*); - build/us/lib/ultralib/src/os/setthreadpri.o(.bss*); - build/us/lib/ultralib/src/os/startthread.o(.bss*); - build/us/lib/ultralib/src/os/stopthread.o(.bss*); - build/us/lib/ultralib/src/os/thread.o(.bss*); - build/us/lib/ultralib/src/os/yieldthread.o(.bss*); - build/us/lib/ultralib/src/os/gettime.o(.bss*); - build/us/lib/ultralib/src/os/settime.o(.bss*); - build/us/lib/ultralib/src/os/settimer.o(.bss*); - build/us/lib/ultralib/src/os/timerintr.o(.bss*); - build/us/lib/ultralib/src/os/probetlb.o(.bss*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(.bss*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(.bss*); - build/us/lib/ultralib/src/io/vimgr.o(.bss*); - build/us/lib/ultralib/src/io/vitbl.o(.bss*); - build/us/lib/ultralib/src/io/visetevent.o(.bss*); - build/us/lib/ultralib/src/io/visetmode.o(.bss*); - build/us/lib/ultralib/src/io/visetspecial.o(.bss*); - build/us/lib/ultralib/src/io/visetyscale.o(.bss*); - build/us/lib/ultralib/src/io/viswapbuf.o(.bss*); - build/us/lib/ultralib/src/io/viswapcontext.o(.bss*); - build/us/lib/ultralib/src/io/viblack.o(.bss*); - build/us/lib/ultralib/src/mgu/mtxident.o(.bss*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(.bss*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(.bss*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(.bss*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(.bss*); - build/us/lib/ultralib/src/mgu/scale.o(.bss*); - build/us/lib/ultralib/src/mgu/scalef.o(.bss*); - build/us/lib/ultralib/src/mgu/translate.o(.bss*); - build/us/lib/ultralib/src/mgu/translatef.o(.bss*); - build/us/lib/ultralib/src/os/initialize.o(.bss*); - build/us/lib/ultralib/src/io/conteepread.o(.bss*); - build/us/lib/ultralib/src/io/conteepwrite.o(.bss*); - build/us/lib/ultralib/src/os/exceptasm.o(.bss*); - build/us/lib/ultralib/src/os/interrupt.o(.bss*); - build/us/lib/ultralib/src/os/setintmask.o(.bss*); - build/us/lib/ultralib/src/os/setglobalintmask.o(.bss*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(.bss*); - build/us/lib/ultralib/src/io/pirawdma.o(.bss*); - build/us/lib/ultralib/src/io/pigetcmdq.o(.bss*); - build/us/lib/ultralib/src/io/epirawread.o(.bss*); - build/us/lib/ultralib/src/io/epirawwrite.o(.bss*); - build/us/lib/ultralib/src/io/ai.o(.bss*); - build/us/lib/ultralib/src/audio/drvrnew.o(.bss*); - build/us/lib/ultralib/src/audio/load.o(.bss*); - build/us/lib/ultralib/src/audio/auxbus.o(.bss*); - build/us/lib/ultralib/src/audio/filter.o(.bss*); - build/us/lib/ultralib/src/audio/mainbus.o(.bss*); - build/us/lib/ultralib/src/audio/resample.o(.bss*); - build/us/lib/ultralib/src/audio/reverb.o(.bss*); - build/us/lib/ultralib/src/audio/save.o(.bss*); - build/us/lib/ultralib/src/audio/heapalloc.o(.bss*); - build/us/lib/ultralib/src/audio/copy.o(.bss*); - build/us/lib/ultralib/src/os/invalicache.o(.bss*); - build/us/lib/ultralib/src/os/writebackdcache.o(.bss*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(.bss*); - build/us/lib/ultralib/src/os/getcause.o(.bss*); - build/us/lib/ultralib/src/os/getcount.o(.bss*); - build/us/lib/ultralib/src/os/getsr.o(.bss*); - build/us/lib/ultralib/src/os/setcompare.o(.bss*); - build/us/lib/ultralib/src/os/setfpccsr.o(.bss*); - build/us/lib/ultralib/src/os/setsr.o(.bss*); - build/us/lib/ultralib/src/os/setwatchlo.o(.bss*); - build/us/lib/ultralib/src/io/sp.o(.bss*); - build/us/lib/ultralib/src/io/spgetstat.o(.bss*); - build/us/lib/ultralib/src/io/spsetstat.o(.bss*); - build/us/lib/ultralib/src/io/spsetpc.o(.bss*); - build/us/lib/ultralib/src/io/sprawdma.o(.bss*); - build/us/lib/ultralib/src/io/sirawread.o(.bss*); - build/us/lib/ultralib/src/io/sirawwrite.o(.bss*); - build/us/lib/ultralib/src/os/destroythread.o(.bss*); - build/us/lib/ultralib/src/os/maptlbrdb.o(.bss*); - build/us/lib/ultralib/src/os/unmaptlball.o(.bss*); - build/us/lib/ultralib/src/io/vi.o(.bss*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(.bss*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(.bss*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(.bss*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(.bss*); - build/us/lib/ultralib/src/os/parameters.o(.bss*); - build/us/lib/ultralib/src/gu/libm_vals.o(.bss*); - build/us/lib/ultralib/src/io/dp.o(.bss*); - build/us/lib/ultralib/src/io/si.o(.bss*); - build/us/src/libkmc/fmod.o(.bss*); - build/us/src/libkmc/memmove.o(.bss*); - build/us/src/libkmc/memset.o(.bss*); - build/us/src/libkmc/modf.o(.bss*); - build/us/src/libkmc/rand.o(.bss*); - build/us/src/libkmc/strcpy.o(.bss*); - build/us/src/libkmc/mmuldi3.o(.bss*); - build/us/src/libkmc/ctype.o(.bss*); - build/us/asm/us/data/boot/8001B640.bss.o(.bss*); - . = ALIGN(., 0x10); - boot_BSS_END = .; - boot_BSS_SIZE = ABSOLUTE(boot_BSS_END - boot_BSS_START); - } - - COMMON (NOLOAD) : - { - FILL(0x00000000); - bootCOMMON_START = .; - build/us/src/boot/boot_main.o(COMMON*); - build/us/src/boot/dmadata.o(COMMON*); - build/us/src/gzip/inflate.o(COMMON*); - build/us/src/gzip/unzip.o(COMMON*); - build/us/src/boot/util.o(COMMON*); - build/us/src/boot/rom_offsets.o(COMMON*); - build/us/lib/ultralib/src/io/conteepprobe.o(COMMON*); - build/us/lib/ultralib/src/io/conteeplongwrite.o(COMMON*); - build/us/lib/ultralib/src/io/conteeplongread.o(COMMON*); - build/us/lib/ultralib/src/io/pimgr.o(COMMON*); - build/us/lib/ultralib/src/io/epirawdma.o(COMMON*); - build/us/lib/ultralib/src/io/epidma.o(COMMON*); - build/us/lib/ultralib/src/io/cartrominit.o(COMMON*); - build/us/lib/ultralib/src/io/devmgr.o(COMMON*); - build/us/lib/ultralib/src/io/piacs.o(COMMON*); - build/us/lib/ultralib/src/io/pidma.o(COMMON*); - build/us/lib/ultralib/src/io/aigetlen.o(COMMON*); - build/us/lib/ultralib/src/io/aigetstat.o(COMMON*); - build/us/lib/ultralib/src/io/aisetfreq.o(COMMON*); - build/us/lib/ultralib/src/io/aisetnextbuf.o(COMMON*); - build/us/lib/ultralib/src/audio/env.o(COMMON*); - build/us/lib/ultralib/src/audio/sl.o(COMMON*); - build/us/lib/ultralib/src/audio/heapinit.o(COMMON*); - build/us/lib/ultralib/src/audio/synthesizer.o(COMMON*); - build/us/lib/ultralib/src/audio/syndelete.o(COMMON*); - build/us/lib/ultralib/src/audio/synaddplayer.o(COMMON*); - build/us/lib/ultralib/src/audio/synallocvoice.o(COMMON*); - build/us/lib/ultralib/src/audio/synstopvoice.o(COMMON*); - build/us/lib/ultralib/src/audio/synstartvoice.o(COMMON*); - build/us/lib/ultralib/src/audio/synsetpitch.o(COMMON*); - build/us/lib/ultralib/src/audio/synsetvol.o(COMMON*); - build/us/lib/ultralib/src/audio/synsetfxmix.o(COMMON*); - build/us/lib/ultralib/src/audio/synsetpan.o(COMMON*); - build/us/lib/ultralib/src/audio/synallocfx.o(COMMON*); - build/us/lib/ultralib/src/os/invaldcache.o(COMMON*); - build/us/lib/ultralib/src/os/writebackdcacheall.o(COMMON*); - build/us/lib/ultralib/src/io/contquery.o(COMMON*); - build/us/lib/ultralib/src/io/contreaddata.o(COMMON*); - build/us/lib/ultralib/src/io/controller.o(COMMON*); - build/us/lib/ultralib/src/io/contsetch.o(COMMON*); - build/us/lib/ultralib/src/os/virtualtophysical.o(COMMON*); - build/us/lib/ultralib/src/gu/sqrtf.o(COMMON*); - build/us/lib/ultralib/src/gu/cosf.o(COMMON*); - build/us/lib/ultralib/src/gu/ortho.o(COMMON*); - build/us/lib/ultralib/src/gu/perspective.o(COMMON*); - build/us/lib/ultralib/src/gu/rotaterpy.o(COMMON*); - build/us/lib/ultralib/src/gu/sinf.o(COMMON*); - build/us/lib/ultralib/src/gu/sins.o(COMMON*); - build/us/lib/ultralib/src/libc/bcmp.o(COMMON*); - build/us/lib/ultralib/src/libc/bcopy.o(COMMON*); - build/us/lib/ultralib/src/libc/bzero.o(COMMON*); - build/us/lib/ultralib/src/libc/string.o(COMMON*); - build/us/lib/ultralib/src/os/createmesgqueue.o(COMMON*); - build/us/lib/ultralib/src/os/jammesg.o(COMMON*); - build/us/lib/ultralib/src/os/recvmesg.o(COMMON*); - build/us/lib/ultralib/src/os/sendmesg.o(COMMON*); - build/us/lib/ultralib/src/os/seteventmesg.o(COMMON*); - build/us/lib/ultralib/src/io/sptask.o(COMMON*); - build/us/lib/ultralib/src/io/sptaskyield.o(COMMON*); - build/us/lib/ultralib/src/io/sptaskyielded.o(COMMON*); - build/us/lib/ultralib/src/sched/sched.o(COMMON*); - build/us/lib/ultralib/src/io/sirawdma.o(COMMON*); - build/us/lib/ultralib/src/io/siacs.o(COMMON*); - build/us/lib/ultralib/src/os/createthread.o(COMMON*); - build/us/lib/ultralib/src/os/getthreadpri.o(COMMON*); - build/us/lib/ultralib/src/os/setthreadpri.o(COMMON*); - build/us/lib/ultralib/src/os/startthread.o(COMMON*); - build/us/lib/ultralib/src/os/stopthread.o(COMMON*); - build/us/lib/ultralib/src/os/thread.o(COMMON*); - build/us/lib/ultralib/src/os/yieldthread.o(COMMON*); - build/us/lib/ultralib/src/os/gettime.o(COMMON*); - build/us/lib/ultralib/src/os/settime.o(COMMON*); - build/us/lib/ultralib/src/os/settimer.o(COMMON*); - build/us/lib/ultralib/src/os/timerintr.o(COMMON*); - build/us/lib/ultralib/src/os/probetlb.o(COMMON*); - build/us/lib/ultralib/src/io/vigetcurrframebuf.o(COMMON*); - build/us/lib/ultralib/src/io/vigetnextframebuf.o(COMMON*); - build/us/lib/ultralib/src/io/vimgr.o(COMMON*); - build/us/lib/ultralib/src/io/vitbl.o(COMMON*); - build/us/lib/ultralib/src/io/visetevent.o(COMMON*); - build/us/lib/ultralib/src/io/visetmode.o(COMMON*); - build/us/lib/ultralib/src/io/visetspecial.o(COMMON*); - build/us/lib/ultralib/src/io/visetyscale.o(COMMON*); - build/us/lib/ultralib/src/io/viswapbuf.o(COMMON*); - build/us/lib/ultralib/src/io/viswapcontext.o(COMMON*); - build/us/lib/ultralib/src/io/viblack.o(COMMON*); - build/us/lib/ultralib/src/mgu/mtxident.o(COMMON*); - build/us/lib/ultralib/src/mgu/mtxidentf.o(COMMON*); - build/us/lib/ultralib/src/mgu/mtxf2l.o(COMMON*); - build/us/lib/ultralib/src/mgu/mtxl2f.o(COMMON*); - build/us/lib/ultralib/src/mgu/mtxcatf.o(COMMON*); - build/us/lib/ultralib/src/mgu/scale.o(COMMON*); - build/us/lib/ultralib/src/mgu/scalef.o(COMMON*); - build/us/lib/ultralib/src/mgu/translate.o(COMMON*); - build/us/lib/ultralib/src/mgu/translatef.o(COMMON*); - build/us/lib/ultralib/src/os/initialize.o(COMMON*); - build/us/lib/ultralib/src/io/conteepread.o(COMMON*); - build/us/lib/ultralib/src/io/conteepwrite.o(COMMON*); - build/us/lib/ultralib/src/os/exceptasm.o(COMMON*); - build/us/lib/ultralib/src/os/interrupt.o(COMMON*); - build/us/lib/ultralib/src/os/setintmask.o(COMMON*); - build/us/lib/ultralib/src/os/setglobalintmask.o(COMMON*); - build/us/lib/ultralib/src/os/resetglobalintmask.o(COMMON*); - build/us/lib/ultralib/src/io/pirawdma.o(COMMON*); - build/us/lib/ultralib/src/io/pigetcmdq.o(COMMON*); - build/us/lib/ultralib/src/io/epirawread.o(COMMON*); - build/us/lib/ultralib/src/io/epirawwrite.o(COMMON*); - build/us/lib/ultralib/src/io/ai.o(COMMON*); - build/us/lib/ultralib/src/audio/drvrnew.o(COMMON*); - build/us/lib/ultralib/src/audio/load.o(COMMON*); - build/us/lib/ultralib/src/audio/auxbus.o(COMMON*); - build/us/lib/ultralib/src/audio/filter.o(COMMON*); - build/us/lib/ultralib/src/audio/mainbus.o(COMMON*); - build/us/lib/ultralib/src/audio/resample.o(COMMON*); - build/us/lib/ultralib/src/audio/reverb.o(COMMON*); - build/us/lib/ultralib/src/audio/save.o(COMMON*); - build/us/lib/ultralib/src/audio/heapalloc.o(COMMON*); - build/us/lib/ultralib/src/audio/copy.o(COMMON*); - build/us/lib/ultralib/src/os/invalicache.o(COMMON*); - build/us/lib/ultralib/src/os/writebackdcache.o(COMMON*); - build/us/lib/ultralib/src/io/dpsetnextbuf.o(COMMON*); - build/us/lib/ultralib/src/os/getcause.o(COMMON*); - build/us/lib/ultralib/src/os/getcount.o(COMMON*); - build/us/lib/ultralib/src/os/getsr.o(COMMON*); - build/us/lib/ultralib/src/os/setcompare.o(COMMON*); - build/us/lib/ultralib/src/os/setfpccsr.o(COMMON*); - build/us/lib/ultralib/src/os/setsr.o(COMMON*); - build/us/lib/ultralib/src/os/setwatchlo.o(COMMON*); - build/us/lib/ultralib/src/io/sp.o(COMMON*); - build/us/lib/ultralib/src/io/spgetstat.o(COMMON*); - build/us/lib/ultralib/src/io/spsetstat.o(COMMON*); - build/us/lib/ultralib/src/io/spsetpc.o(COMMON*); - build/us/lib/ultralib/src/io/sprawdma.o(COMMON*); - build/us/lib/ultralib/src/io/sirawread.o(COMMON*); - build/us/lib/ultralib/src/io/sirawwrite.o(COMMON*); - build/us/lib/ultralib/src/os/destroythread.o(COMMON*); - build/us/lib/ultralib/src/os/maptlbrdb.o(COMMON*); - build/us/lib/ultralib/src/os/unmaptlball.o(COMMON*); - build/us/lib/ultralib/src/io/vi.o(COMMON*); - build/us/lib/ultralib/src/io/vigetcurrcontext.o(COMMON*); - build/us/lib/ultralib/src/vimodes/vimodentsclan1.o(COMMON*); - build/us/lib/ultralib/src/vimodes/vimodepallan1.o(COMMON*); - build/us/lib/ultralib/src/vimodes/vimodempallan1.o(COMMON*); - build/us/lib/ultralib/src/os/parameters.o(COMMON*); - build/us/lib/ultralib/src/gu/libm_vals.o(COMMON*); - build/us/lib/ultralib/src/io/dp.o(COMMON*); - build/us/lib/ultralib/src/io/si.o(COMMON*); - build/us/src/libkmc/fmod.o(COMMON*); - build/us/src/libkmc/memmove.o(COMMON*); - build/us/src/libkmc/memset.o(COMMON*); - build/us/src/libkmc/modf.o(COMMON*); - build/us/src/libkmc/rand.o(COMMON*); - build/us/src/libkmc/strcpy.o(COMMON*); - build/us/src/libkmc/mmuldi3.o(COMMON*); - build/us/src/libkmc/ctype.o(COMMON*); - build/us/asm/us/data/boot/8001B640.bss.o(COMMON*); - . = ALIGN(., 0x10); - bootCOMMON_END = .; - bootCOMMON_SIZE = ABSOLUTE(bootCOMMON_END - bootCOMMON_START); - } - - .pdr 0 : - { - *(.pdr); - } - .mdebug 0 : - { - *(.mdebug); - } - .mdebug.abi32 0 : - { - *(.mdebug.abi32); - } - .debug 0 : - { - *(.debug); - } - .line 0 : - { - *(.line); - } - .debug_srcinfo 0 : - { - *(.debug_srcinfo); - } - .debug_sfnames 0 : - { - *(.debug_sfnames); - } - .debug_aranges 0 : - { - *(.debug_aranges); - } - .debug_pubnames 0 : - { - *(.debug_pubnames); - } - .debug_info 0 : - { - *(.debug_info); - } - .debug_abbrev 0 : - { - *(.debug_abbrev); - } - .debug_line 0 : - { - *(.debug_line); - } - .debug_line_end 0 : - { - *(.debug_line_end); - } - .debug_frame 0 : - { - *(.debug_frame); - } - .debug_str 0 : - { - *(.debug_str); - } - .debug_loc 0 : - { - *(.debug_loc); - } - .debug_macinfo 0 : - { - *(.debug_macinfo); - } - .debug_weaknames 0 : - { - *(.debug_weaknames); - } - .debug_funcnames 0 : - { - *(.debug_funcnames); - } - .debug_typenames 0 : - { - *(.debug_typenames); - } - .debug_varnames 0 : - { - *(.debug_varnames); - } - .debug_pubtypes 0 : - { - *(.debug_pubtypes); - } - .debug_ranges 0 : - { - *(.debug_ranges); - } - .debug_addr 0 : - { - *(.debug_addr); - } - .debug_line_str 0 : - { - *(.debug_line_str); - } - .debug_loclists 0 : - { - *(.debug_loclists); - } - .debug_macro 0 : - { - *(.debug_macro); - } - .debug_names 0 : - { - *(.debug_names); - } - .debug_rnglists 0 : - { - *(.debug_rnglists); - } - .debug_str_offsets 0 : - { - *(.debug_str_offsets); - } - .debug_sup 0 : - { - *(.debug_sup); - } - .gnu.attributes 0 : - { - *(.gnu.attributes); - } - .note 0 : - { - *(.note); - } - .comment 0 : - { - *(.comment); - } - - .shstrtab 0 : - { - *(.shstrtab); - } - - /DISCARD/ : - { - *(.reginfo); - *(.MIPS.abiflags); - *(.MIPS.options); - *(.note.gnu.build-id); - *(.interp); - *(.eh_frame); - *(*); - } -} diff --git a/tests/partial_linking/follow_segment.d b/tests/partial_linking/follow_segment.d new file mode 100644 index 0000000..5bf2a23 --- /dev/null +++ b/tests/partial_linking/follow_segment.d @@ -0,0 +1,8 @@ +build/rom.elf: \ + build/segments/boot.o \ + build/segments/kanji.o \ + build/segments/main.o + +build/segments/boot.o: +build/segments/kanji.o: +build/segments/main.o: diff --git a/tests/partial_linking/follow_segment.ld b/tests/partial_linking/follow_segment.ld new file mode 100644 index 0000000..7a9078e --- /dev/null +++ b/tests/partial_linking/follow_segment.ld @@ -0,0 +1,211 @@ +SECTIONS +{ + __romPos = 0x0; + + boot_ROM_START = __romPos; + boot_VRAM = ADDR(.boot); + boot_alloc_VRAM = .; + .boot 0x80000460 : AT(boot_ROM_START) SUBALIGN(16) + { + FILL(0x00000000); + boot_TEXT_START = .; + build/segments/boot.o(.text*); + boot_TEXT_END = .; + boot_TEXT_SIZE = ABSOLUTE(boot_TEXT_END - boot_TEXT_START); + + boot_DATA_START = .; + build/segments/boot.o(.data*); + boot_DATA_END = .; + boot_DATA_SIZE = ABSOLUTE(boot_DATA_END - boot_DATA_START); + + boot_RODATA_START = .; + build/segments/boot.o(.rodata*); + boot_RODATA_END = .; + boot_RODATA_SIZE = ABSOLUTE(boot_RODATA_END - boot_RODATA_START); + + boot_SDATA_START = .; + build/segments/boot.o(.sdata*); + boot_SDATA_END = .; + boot_SDATA_SIZE = ABSOLUTE(boot_SDATA_END - boot_SDATA_START); + } + boot_alloc_VRAM_END = .; + boot_alloc_VRAM_SIZE = ABSOLUTE(boot_alloc_VRAM_END - boot_alloc_VRAM); + + boot_noload_VRAM = .; + .boot.noload (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + boot_SBSS_START = .; + build/segments/boot.o(.sbss*); + boot_SBSS_END = .; + boot_SBSS_SIZE = ABSOLUTE(boot_SBSS_END - boot_SBSS_START); + + boot_SCOMMON_START = .; + build/segments/boot.o(.scommon*); + boot_SCOMMON_END = .; + boot_SCOMMON_SIZE = ABSOLUTE(boot_SCOMMON_END - boot_SCOMMON_START); + + boot_BSS_START = .; + build/segments/boot.o(.bss*); + boot_BSS_END = .; + boot_BSS_SIZE = ABSOLUTE(boot_BSS_END - boot_BSS_START); + + bootCOMMON_START = .; + build/segments/boot.o(COMMON*); + bootCOMMON_END = .; + bootCOMMON_SIZE = ABSOLUTE(bootCOMMON_END - bootCOMMON_START); + } + boot_noload_VRAM_END = .; + boot_noload_VRAM_SIZE = ABSOLUTE(boot_noload_VRAM_END - boot_noload_VRAM); + boot_VRAM_END = .; + boot_VRAM_SIZE = ABSOLUTE(boot_VRAM_END - boot_VRAM); + __romPos += SIZEOF(.boot); + boot_ROM_END = __romPos; + boot_ROM_SIZE = ABSOLUTE(boot_ROM_END - boot_ROM_START); + + kanji_ROM_START = __romPos; + kanji_VRAM = ADDR(.kanji); + kanji_alloc_VRAM = .; + .kanji : AT(kanji_ROM_START) SUBALIGN(16) + { + FILL(0x00000000); + kanji_TEXT_START = .; + build/segments/kanji.o(.text*); + kanji_TEXT_END = .; + kanji_TEXT_SIZE = ABSOLUTE(kanji_TEXT_END - kanji_TEXT_START); + + kanji_DATA_START = .; + build/segments/kanji.o(.data*); + kanji_DATA_END = .; + kanji_DATA_SIZE = ABSOLUTE(kanji_DATA_END - kanji_DATA_START); + + kanji_RODATA_START = .; + build/segments/kanji.o(.rodata*); + kanji_RODATA_END = .; + kanji_RODATA_SIZE = ABSOLUTE(kanji_RODATA_END - kanji_RODATA_START); + + kanji_SDATA_START = .; + build/segments/kanji.o(.sdata*); + kanji_SDATA_END = .; + kanji_SDATA_SIZE = ABSOLUTE(kanji_SDATA_END - kanji_SDATA_START); + } + kanji_alloc_VRAM_END = .; + kanji_alloc_VRAM_SIZE = ABSOLUTE(kanji_alloc_VRAM_END - kanji_alloc_VRAM); + + kanji_noload_VRAM = .; + .kanji.noload (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + kanji_SBSS_START = .; + build/segments/kanji.o(.sbss*); + kanji_SBSS_END = .; + kanji_SBSS_SIZE = ABSOLUTE(kanji_SBSS_END - kanji_SBSS_START); + + kanji_SCOMMON_START = .; + build/segments/kanji.o(.scommon*); + kanji_SCOMMON_END = .; + kanji_SCOMMON_SIZE = ABSOLUTE(kanji_SCOMMON_END - kanji_SCOMMON_START); + + kanji_BSS_START = .; + build/segments/kanji.o(.bss*); + kanji_BSS_END = .; + kanji_BSS_SIZE = ABSOLUTE(kanji_BSS_END - kanji_BSS_START); + + kanjiCOMMON_START = .; + build/segments/kanji.o(COMMON*); + kanjiCOMMON_END = .; + kanjiCOMMON_SIZE = ABSOLUTE(kanjiCOMMON_END - kanjiCOMMON_START); + } + kanji_noload_VRAM_END = .; + kanji_noload_VRAM_SIZE = ABSOLUTE(kanji_noload_VRAM_END - kanji_noload_VRAM); + kanji_VRAM_END = .; + kanji_VRAM_SIZE = ABSOLUTE(kanji_VRAM_END - kanji_VRAM); + __romPos += SIZEOF(.kanji); + kanji_ROM_END = __romPos; + kanji_ROM_SIZE = ABSOLUTE(kanji_ROM_END - kanji_ROM_START); + + main_ROM_START = __romPos; + main_VRAM = ADDR(.main); + main_alloc_VRAM = .; + .main boot_VRAM_END : AT(main_ROM_START) SUBALIGN(16) + { + FILL(0x00000000); + main_TEXT_START = .; + build/segments/main.o(.text*); + . = ALIGN(., 0x20); + main_TEXT_END = .; + main_TEXT_SIZE = ABSOLUTE(main_TEXT_END - main_TEXT_START); + + main_DATA_START = .; + build/segments/main.o(.data*); + . = ALIGN(., 0x20); + main_DATA_END = .; + main_DATA_SIZE = ABSOLUTE(main_DATA_END - main_DATA_START); + + main_RODATA_START = .; + build/segments/main.o(.rodata*); + . = ALIGN(., 0x20); + main_RODATA_END = .; + main_RODATA_SIZE = ABSOLUTE(main_RODATA_END - main_RODATA_START); + + main_SDATA_START = .; + build/segments/main.o(.sdata*); + . = ALIGN(., 0x20); + main_SDATA_END = .; + main_SDATA_SIZE = ABSOLUTE(main_SDATA_END - main_SDATA_START); + } + main_alloc_VRAM_END = .; + main_alloc_VRAM_SIZE = ABSOLUTE(main_alloc_VRAM_END - main_alloc_VRAM); + + main_noload_VRAM = .; + .main.noload (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + main_SBSS_START = .; + build/segments/main.o(.sbss*); + . = ALIGN(., 0x20); + main_SBSS_END = .; + main_SBSS_SIZE = ABSOLUTE(main_SBSS_END - main_SBSS_START); + + main_SCOMMON_START = .; + build/segments/main.o(.scommon*); + . = ALIGN(., 0x20); + main_SCOMMON_END = .; + main_SCOMMON_SIZE = ABSOLUTE(main_SCOMMON_END - main_SCOMMON_START); + + main_BSS_START = .; + build/segments/main.o(.bss*); + . = ALIGN(., 0x20); + main_BSS_END = .; + main_BSS_SIZE = ABSOLUTE(main_BSS_END - main_BSS_START); + + mainCOMMON_START = .; + build/segments/main.o(COMMON*); + . = ALIGN(., 0x20); + mainCOMMON_END = .; + mainCOMMON_SIZE = ABSOLUTE(mainCOMMON_END - mainCOMMON_START); + } + main_noload_VRAM_END = .; + main_noload_VRAM_SIZE = ABSOLUTE(main_noload_VRAM_END - main_noload_VRAM); + main_VRAM_END = .; + main_VRAM_SIZE = ABSOLUTE(main_VRAM_END - main_VRAM); + __romPos += SIZEOF(.main); + main_ROM_END = __romPos; + main_ROM_SIZE = ABSOLUTE(main_ROM_END - main_ROM_START); + + .shstrtab 0 : + { + *(.shstrtab); + } + + /DISCARD/ : + { + *(.reginfo); + *(.MIPS.abiflags); + *(.MIPS.options); + *(.note.gnu.build-id); + *(.interp); + *(.eh_frame); + *(*); + } +} diff --git a/tests/partial_linking/follow_segment.yaml b/tests/partial_linking/follow_segment.yaml new file mode 100644 index 0000000..6f18b8e --- /dev/null +++ b/tests/partial_linking/follow_segment.yaml @@ -0,0 +1,28 @@ +settings: + base_path: build + section_end_align: null + + d_path: tests/partial_linking/follow_segment.d + target_path: build/rom.elf + + partial_scripts_folder: tests/partial_linking/follow_segment + partial_build_segments_folder: segments + +segments: + - name: boot + fixed_vram: 0x80000460 + files: + - { path: src/main/boot_main.o } + - { path: src/libultra.o } # yes a single file, deal with it + + - name: kanji + files: + - { path: src/kanji/kanji.o } + + - name: main + follows_segment: boot + section_end_align: 0x20 + files: + - { path: src/main/main.o } + - { path: src/main/dmadata.o } + - { path: asm/main/util.o } diff --git a/tests/partial_linking/follow_segment/boot.ld b/tests/partial_linking/follow_segment/boot.ld new file mode 100644 index 0000000..e8aab83 --- /dev/null +++ b/tests/partial_linking/follow_segment/boot.ld @@ -0,0 +1,100 @@ +SECTIONS +{ + . = 0x80000460; + + boot_TEXT_START = .; + .text : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.text*); + build/src/libultra.o(.text*); + } + boot_TEXT_END = .; + boot_TEXT_SIZE = ABSOLUTE(boot_TEXT_END - boot_TEXT_START); + + boot_DATA_START = .; + .data : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.data*); + build/src/libultra.o(.data*); + } + boot_DATA_END = .; + boot_DATA_SIZE = ABSOLUTE(boot_DATA_END - boot_DATA_START); + + boot_RODATA_START = .; + .rodata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.rodata*); + build/src/libultra.o(.rodata*); + } + boot_RODATA_END = .; + boot_RODATA_SIZE = ABSOLUTE(boot_RODATA_END - boot_RODATA_START); + + boot_SDATA_START = .; + .sdata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.sdata*); + build/src/libultra.o(.sdata*); + } + boot_SDATA_END = .; + boot_SDATA_SIZE = ABSOLUTE(boot_SDATA_END - boot_SDATA_START); + + boot_SBSS_START = .; + .sbss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.sbss*); + build/src/libultra.o(.sbss*); + } + boot_SBSS_END = .; + boot_SBSS_SIZE = ABSOLUTE(boot_SBSS_END - boot_SBSS_START); + + boot_SCOMMON_START = .; + .scommon (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.scommon*); + build/src/libultra.o(.scommon*); + } + boot_SCOMMON_END = .; + boot_SCOMMON_SIZE = ABSOLUTE(boot_SCOMMON_END - boot_SCOMMON_START); + + boot_BSS_START = .; + .bss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(.bss*); + build/src/libultra.o(.bss*); + } + boot_BSS_END = .; + boot_BSS_SIZE = ABSOLUTE(boot_BSS_END - boot_BSS_START); + + bootCOMMON_START = .; + COMMON (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/boot_main.o(COMMON*); + build/src/libultra.o(COMMON*); + } + bootCOMMON_END = .; + bootCOMMON_SIZE = ABSOLUTE(bootCOMMON_END - bootCOMMON_START); + + .shstrtab 0 : + { + *(.shstrtab); + } + + /DISCARD/ : + { + *(.reginfo); + *(.MIPS.abiflags); + *(.MIPS.options); + *(.note.gnu.build-id); + *(.interp); + *(.eh_frame); + *(*); + } +} diff --git a/tests/partial_linking/follow_segment/kanji.ld b/tests/partial_linking/follow_segment/kanji.ld new file mode 100644 index 0000000..f399169 --- /dev/null +++ b/tests/partial_linking/follow_segment/kanji.ld @@ -0,0 +1,90 @@ +SECTIONS +{ + kanji_TEXT_START = .; + .text : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.text*); + } + kanji_TEXT_END = .; + kanji_TEXT_SIZE = ABSOLUTE(kanji_TEXT_END - kanji_TEXT_START); + + kanji_DATA_START = .; + .data : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.data*); + } + kanji_DATA_END = .; + kanji_DATA_SIZE = ABSOLUTE(kanji_DATA_END - kanji_DATA_START); + + kanji_RODATA_START = .; + .rodata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.rodata*); + } + kanji_RODATA_END = .; + kanji_RODATA_SIZE = ABSOLUTE(kanji_RODATA_END - kanji_RODATA_START); + + kanji_SDATA_START = .; + .sdata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.sdata*); + } + kanji_SDATA_END = .; + kanji_SDATA_SIZE = ABSOLUTE(kanji_SDATA_END - kanji_SDATA_START); + + kanji_SBSS_START = .; + .sbss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.sbss*); + } + kanji_SBSS_END = .; + kanji_SBSS_SIZE = ABSOLUTE(kanji_SBSS_END - kanji_SBSS_START); + + kanji_SCOMMON_START = .; + .scommon (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.scommon*); + } + kanji_SCOMMON_END = .; + kanji_SCOMMON_SIZE = ABSOLUTE(kanji_SCOMMON_END - kanji_SCOMMON_START); + + kanji_BSS_START = .; + .bss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(.bss*); + } + kanji_BSS_END = .; + kanji_BSS_SIZE = ABSOLUTE(kanji_BSS_END - kanji_BSS_START); + + kanjiCOMMON_START = .; + COMMON (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/kanji/kanji.o(COMMON*); + } + kanjiCOMMON_END = .; + kanjiCOMMON_SIZE = ABSOLUTE(kanjiCOMMON_END - kanjiCOMMON_START); + + .shstrtab 0 : + { + *(.shstrtab); + } + + /DISCARD/ : + { + *(.reginfo); + *(.MIPS.abiflags); + *(.MIPS.options); + *(.note.gnu.build-id); + *(.interp); + *(.eh_frame); + *(*); + } +} diff --git a/tests/partial_linking/follow_segment/main.ld b/tests/partial_linking/follow_segment/main.ld new file mode 100644 index 0000000..907b0dd --- /dev/null +++ b/tests/partial_linking/follow_segment/main.ld @@ -0,0 +1,114 @@ +SECTIONS +{ + main_TEXT_START = .; + .text : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.text*); + build/src/main/dmadata.o(.text*); + build/asm/main/util.o(.text*); + . = ALIGN(., 0x20); + } + main_TEXT_END = .; + main_TEXT_SIZE = ABSOLUTE(main_TEXT_END - main_TEXT_START); + + main_DATA_START = .; + .data : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.data*); + build/src/main/dmadata.o(.data*); + build/asm/main/util.o(.data*); + . = ALIGN(., 0x20); + } + main_DATA_END = .; + main_DATA_SIZE = ABSOLUTE(main_DATA_END - main_DATA_START); + + main_RODATA_START = .; + .rodata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.rodata*); + build/src/main/dmadata.o(.rodata*); + build/asm/main/util.o(.rodata*); + . = ALIGN(., 0x20); + } + main_RODATA_END = .; + main_RODATA_SIZE = ABSOLUTE(main_RODATA_END - main_RODATA_START); + + main_SDATA_START = .; + .sdata : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.sdata*); + build/src/main/dmadata.o(.sdata*); + build/asm/main/util.o(.sdata*); + . = ALIGN(., 0x20); + } + main_SDATA_END = .; + main_SDATA_SIZE = ABSOLUTE(main_SDATA_END - main_SDATA_START); + + main_SBSS_START = .; + .sbss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.sbss*); + build/src/main/dmadata.o(.sbss*); + build/asm/main/util.o(.sbss*); + . = ALIGN(., 0x20); + } + main_SBSS_END = .; + main_SBSS_SIZE = ABSOLUTE(main_SBSS_END - main_SBSS_START); + + main_SCOMMON_START = .; + .scommon (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.scommon*); + build/src/main/dmadata.o(.scommon*); + build/asm/main/util.o(.scommon*); + . = ALIGN(., 0x20); + } + main_SCOMMON_END = .; + main_SCOMMON_SIZE = ABSOLUTE(main_SCOMMON_END - main_SCOMMON_START); + + main_BSS_START = .; + .bss (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(.bss*); + build/src/main/dmadata.o(.bss*); + build/asm/main/util.o(.bss*); + . = ALIGN(., 0x20); + } + main_BSS_END = .; + main_BSS_SIZE = ABSOLUTE(main_BSS_END - main_BSS_START); + + mainCOMMON_START = .; + COMMON (NOLOAD) : SUBALIGN(16) + { + FILL(0x00000000); + build/src/main/main.o(COMMON*); + build/src/main/dmadata.o(COMMON*); + build/asm/main/util.o(COMMON*); + . = ALIGN(., 0x20); + } + mainCOMMON_END = .; + mainCOMMON_SIZE = ABSOLUTE(mainCOMMON_END - mainCOMMON_START); + + .shstrtab 0 : + { + *(.shstrtab); + } + + /DISCARD/ : + { + *(.reginfo); + *(.MIPS.abiflags); + *(.MIPS.options); + *(.note.gnu.build-id); + *(.interp); + *(.eh_frame); + *(*); + } +} diff --git a/tests/regen_tests.sh b/tests/regen_tests.sh index d5208bc..6828bb8 100755 --- a/tests/regen_tests.sh +++ b/tests/regen_tests.sh @@ -15,3 +15,11 @@ for filepath in tests/test_cases/*.yaml; do echo Generating $output cargo run --release -- $filepath -o $output done + +for filepath in tests/partial_linking/*.yaml; do + filename=$(basename -- "$filepath") + stem="${filename%.*}" + output=tests/partial_linking/$stem.ld + echo Generating $output + cargo run --release -- $filepath -o $output --partial-linking +done