[Buildroot] [PATCH 02/47] package/libfdt: new package

Yann E. MORIN yann.morin.1998 at free.fr
Fri Oct 26 17:36:20 UTC 2012


Arnout, All,

On Thursday 25 October 2012 Arnout Vandecappelle wrote:
>   The package is called dtc, not libfdt.

Gah... Yes.

> On 24/10/12 23:25, Yann E. MORIN wrote:
> > libfdt allows one to manipulate a Flat Device Tree.
> 
>   Flattened Device Tree

Yep.

[--SNIP--]
> > diff --git a/package/Config.in b/package/Config.in
> > index 1650c71..c9cb3ed 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -396,6 +396,7 @@ source "package/libaio/Config.in"
> >   source "package/libraw1394/Config.in"
> >   source "package/tslib/Config.in"
> >   source "package/libfreefare/Config.in"
> > +source "package/dtc/Config.in"
> 
>   Alphabetical order.

Yep.

>   Also, even if for now it only installs libftd, I guess it shouldn't be
> a problem to install dtc as well.  In that case it fits more in
> Development tools or Hardware handling.

"Hardware handling" sounds like the proper place, IMHO.

> >   source "package/libftdi/Config.in"
> >   source "package/libhid/Config.in"
> >   source "package/libiqrf/Config.in"
> > diff --git a/package/dtc/Config.in b/package/dtc/Config.in
> > new file mode 100644
> > index 0000000..7b86c60
> > --- /dev/null
> > +++ b/package/dtc/Config.in
> > @@ -0,0 +1,9 @@
> > +config BR2_PACKAGE_DTC
> > +	bool "dtc"
> > +	help
> > +	  dtc is the Device Tree Compiler, to generate Device Trees.
> 
>   dtc generates Flattened Device Trees (i.e. it flattens the device
> tree).

From Documentation/manual.txt:

---8<---
The currently supported Input Formats are:
    - "dtb": "blob" format.  A flattened device-tree block with
        header in one binary blob.
    - "dts": "source" format.  A text file containing a "source"
        for a device-tree.
    - "fs" format.  A representation equivalent to the output of
        /proc/device-tree  where nodes are directories and
        properties are files.

The currently supported Output Formats are:
     - "dtb": "blob" format
     - "dts": "source" format
     - "asm": assembly language file.  A file that can be sourced
        by gas to generate a device-tree "blob".  That file can
        then simply be added to your Makefile.  Additionally, the
        assembly file exports some symbols that can be used.
---8<---

So, dtc does not /generate/ flattened, it uses them as _input_.
What about this formulation (also from the same manual.txt) :

    The Device Tree Compiler, dtc, takes as input a device-tree in
    a given format and outputs a device-tree in another format.


> > +	  Note that only the library is installed for now.
>   Why?  Build failures in the binaries?

Because I do not need it in my use-case, so I did not test it, so
I did not install it.

Also, this package could probably also be a host package. This patch
only adds dtc as a target package.

[--SNIP--]
> > ++++ dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile	2012-10-22 22:03:21.151047833 +0200
> > +@@ -18,7 +18,7 @@
> > + CPPFLAGS = -I libfdt -I .
> > + WARNINGS = -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
> > + 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
> > +-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
> > ++CFLAGS = -g -Os -fPIC -Werror $(WARNINGS) $(EXTRA_CFLAGS)
> 
>   Why not CFLAGS += ...?
> 
>   And maybe CPPFLAGS should also be fixed.

I'll look again at this.

[--SNIP--]
> > diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
> > new file mode 100644
> > index 0000000..d53e78a
> > --- /dev/null
> > +++ b/package/dtc/dtc.mk
> > @@ -0,0 +1,36 @@
> > +#############################################################
> > +#
> > +# libcurl

dtc, not libcurl. Sigh...

> > +#
> > +#############################################################
> > +
> > +DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
> > +DTC_SITE            = git://git.jdl.com/software/dtc.git
> > +DTC_LICENSE         = GPLv2+/BSD-2c
> > +DTC_LICENSE_FILES   = README.license GPL
> > +# Note: the dual-license only applies to the library.
> > +#       The DT compiler (dtc) is GPLv2+, but we do not install it.
> > +DTC_INSTALL_STAGING = YES
> > +
> > +# Need -fPIC for x86-64
>   ???

Probably left-over from debugging?...

> > +define DTC_BUILD_CMDS
> > +	$(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)                          \
>   Looking at the Makefile, I don't see why parallel builds would fail...

I will investigate again.

> > +	                                  EXTRA_CFLAGS="$(TARGET_CFLAGS)"   \
> > +	                                  PREFIX=/usr                       \
>   It's nicer to put these two options in DTC_MAKE_OPTS.

OK, I'll see to it.

Thanks!

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list