Get the baremetal crt0 included in the final link.

This commit is contained in:
Russel Winder
2009-08-10 09:43:09 +01:00
parent 163baa31ea
commit 5fcf173ae6
2 changed files with 8 additions and 6 deletions

View File

@@ -134,8 +134,10 @@ else :
(libs[variant], crts[variant]) = SConscript('libs/c/SConscript', variant_dir = buildDirectory + '/lib/c/' + variant, duplicate = 0, exports = {'environment': libraryEnvironment, 'variant': variant})
Depends((libs[variant], crts[variant]), libraryEnvironment['configFiles'])
baseEnvironment['libc'] = libs['userspace']
baseEnvironment['crt0'] = crts['userspace']
baseEnvironment['baremetal_libc'] = libs['baremetal']
baseEnvironment['baremetal_crt0'] = crts['baremetal']
baseEnvironment['userspace_libc'] = libs['userspace']
baseEnvironment['userspace_crt0'] = crts['userspace']
libelf = SConscript('libs/elf/SConscript', variant_dir = buildDirectory + '/lib/elf', duplicate = 0, exports = {'environment': libraryEnvironment})
Depends(libelf, libraryEnvironment['configFiles'])
@@ -198,9 +200,9 @@ else :
if extraCppPath: e.Append(CPPPATH=extraCppPath)
objects = e.StaticObject(sources)
Depends(objects, e['configFiles'])
program = e.Program(programName, objects + ['#' + e['crt0'][0].name])
program = e.Program(programName, objects + ['#' + e['userspace_crt0'][0].name])
physicalBaseLinkerScript = Command('include/physical_base.lds', previousImage, 'tools/pyelf/readelf.py --first-free-page ' + previousImage[0].path + ' >> $TARGET')
Depends(program, [physicalBaseLinkerScript, e['crt0']])
Depends(program, [physicalBaseLinkerScript, e['userspace_crt0']])
return program
tasksEnvironment = baseEnvironment.Clone(

View File

@@ -69,9 +69,9 @@ startAxfS = Command('start.axf.S', images[0], ksymToLds)
kernelS = Command('kernel.S', images + [startAxfS], createKernelSFile)
objects = environment.Object(Glob('*.c') + [kernelS])
objects = environment.Object(Glob('*.c') + [kernelS, startAxfS])
Depends(objects, environment['configFiles'])
Depends(objects, images)
program = environment.Program('final', objects)
program = environment.Program('final', objects + [environment['baremetal_crt0']])
Return('program')