Browse Source

dtc: Don't always generate __symbols__ for plugins

At the moment we generate a __symbols__ node if -@ is specified OR if the
dts has the /plugin/ tag.  That difference in behaviour from handling base
trees is unnecessary and slightly confusing.  It also means it's impossible
to create a plugin without symbols.  Since symbols in a plugin are only
useful in the case of stacked plugins - and libfdt doesn't even support
merging plugin symbols as part of overlay application yet - that's a thing
that might be useful.

So make __symbols__ generation depend only on -@.  We also remove remove
the testcases that checked explicitly for this not very useful behaviour.
Instead we don't use -@ for our basic overlay testcase, and check that
symbols are not generated.

At some point in the future we should add support for symbol merging to
libfdt and add testcases for stacked overlay application.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
David Gibson 8 years ago
parent
commit
e3c769aa9c
  1. 1
      dtc.c
  2. 10
      tests/run_tests.sh

1
dtc.c

@ -322,7 +322,6 @@ int main(int argc, char *argv[]) @@ -322,7 +322,6 @@ int main(int argc, char *argv[])

/* on a plugin, generate by default */
if (bi->dtsflags & DTSF_PLUGIN) {
generate_symbols = 1;
generate_fixups = 1;
}


10
tests/run_tests.sh

@ -213,8 +213,8 @@ dtc_overlay_tests () { @@ -213,8 +213,8 @@ dtc_overlay_tests () {
run_test check_path overlay_base.test.dtb not-exists "/__fixups__"
run_test check_path overlay_base.test.dtb not-exists "/__local_fixups__"

run_dtc_test -@ -I dts -O dtb -o overlay_overlay.test.dtb overlay_overlay.dts
run_test check_path overlay_overlay.test.dtb exists "/__symbols__"
run_dtc_test -I dts -O dtb -o overlay_overlay.test.dtb overlay_overlay.dts
run_test check_path overlay_overlay.test.dtb not-exists "/__symbols__"
run_test check_path overlay_overlay.test.dtb exists "/__fixups__"
run_test check_path overlay_overlay.test.dtb exists "/__local_fixups__"

@ -225,12 +225,6 @@ dtc_overlay_tests () { @@ -225,12 +225,6 @@ dtc_overlay_tests () {
run_dtc_test -I dts -O dtb -o overlay_overlay_decompile.test.dtb overlay_overlay_decompile.test.dts
run_test dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_decompile.test.dtb

# test plugin auto-generation without using -@
run_dtc_test -I dts -O dtb -o overlay_overlay_with_symbols_auto.test.dtb overlay_overlay.dts
run_test check_path overlay_overlay_with_symbols_auto.test.dtb exists "/__symbols__"
run_test check_path overlay_overlay_with_symbols_auto.test.dtb exists "/__fixups__"
run_test check_path overlay_overlay_with_symbols_auto.test.dtb exists "/__local_fixups__"

# Test generation of aliases insted of symbols
run_dtc_test -A -I dts -O dtb -o overlay_base_with_aliases.dtb overlay_base.dts
run_test check_path overlay_base_with_aliases.dtb exists "/aliases"

Loading…
Cancel
Save