Build should fail if ext symbols remain undefined
This commit is contained in:
parent
0491043305
commit
b827b6af22
21
build.ps1
21
build.ps1
|
@ -47,7 +47,7 @@ $scripttool_args =
|
||||||
|
|
||||||
$gcc_args =
|
$gcc_args =
|
||||||
"-c",
|
"-c",
|
||||||
"-O3",
|
"-O1",
|
||||||
"-fno-ipa-cp",
|
"-fno-ipa-cp",
|
||||||
"-fno-inline",
|
"-fno-inline",
|
||||||
"-march=armv4t",
|
"-march=armv4t",
|
||||||
|
@ -56,10 +56,10 @@ $gcc_args =
|
||||||
"-ffixed-r12",
|
"-ffixed-r12",
|
||||||
"-mno-long-calls"
|
"-mno-long-calls"
|
||||||
|
|
||||||
$combine_script_contents =
|
$combine_script_contents =
|
||||||
"SECTIONS { .text 0x$($base_c_address.ToString('X')) : { *(.text .rodata) } }"
|
"SECTIONS { .text 0x$($base_c_address.ToString('X')) : { *(.text .rodata) } }"
|
||||||
|
|
||||||
$link_script_contents =
|
$link_script_contents =
|
||||||
"SECTIONS { .text 0x$($base_c_address.ToString('X')) : { *(.text .data .rodata) } }"
|
"SECTIONS { .text 0x$($base_c_address.ToString('X')) : { *(.text .data .rodata) } }"
|
||||||
#EndRegion Variables
|
#EndRegion Variables
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ Function New-SymfileSymbol([string]$symbol_string)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$symbol.Size = 0
|
$symbol.Size = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
$symbol.IsLocal = $symbol.Name.StartsWith("@@")
|
$symbol.IsLocal = $symbol.Name.StartsWith("@@")
|
||||||
|
@ -195,7 +195,7 @@ function New-Section([string]$section_string)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $null
|
return $null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#EndRegion Functions
|
#EndRegion Functions
|
||||||
|
@ -394,6 +394,17 @@ if ($LASTEXITCODE -ne 0) { exit -1 }
|
||||||
$hack_symbols = Get-SymfileSymbols "$([IO.Path]::Combine($src_dir, $hack_sym_file))"
|
$hack_symbols = Get-SymfileSymbols "$([IO.Path]::Combine($src_dir, $hack_sym_file))"
|
||||||
$includes_symbols = Get-SymfileSymbols "$([IO.Path]::Combine($working_dir, $includes_sym_file))"
|
$includes_symbols = Get-SymfileSymbols "$([IO.Path]::Combine($working_dir, $includes_sym_file))"
|
||||||
$asm_symbols = ($hack_symbols + $includes_symbols) | Where-Object { $_.IsGlobal }
|
$asm_symbols = ($hack_symbols + $includes_symbols) | Where-Object { $_.IsGlobal }
|
||||||
|
$asm_symbols_names = $asm_symbols | ForEach-Object { $_.Name }
|
||||||
|
|
||||||
|
foreach ($ext_symbols_name in $ext_symbols_names)
|
||||||
|
{
|
||||||
|
if ($asm_symbols_names -notcontains $ext_symbols_name)
|
||||||
|
{
|
||||||
|
Write-Host "Error: Undefined external symbol $ext_symbols_name"
|
||||||
|
exit -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Set-Content -Path $link_script -Value $link_script_contents
|
Set-Content -Path $link_script -Value $link_script_contents
|
||||||
$asm_symbols | ForEach-Object { Add-Content -Path $link_script -Value "$($_.Name) = 0x$($_.Value.ToString("X"));" }
|
$asm_symbols | ForEach-Object { Add-Content -Path $link_script -Value "$($_.Name) = 0x$($_.Value.ToString("X"));" }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue