sdcc - Cross Compiler, Needs Packaging Standards?

Trond Danielsen trond.danielsen at gmail.com
Sat Feb 24 14:18:22 UTC 2007


2007/2/24, Hans de Goede <j.w.r.degoede at hhs.nl>:
> Hi All,
>
> Trond Danielsen wrote:
> > 2007/2/23, Hans de Goede <j.w.r.degoede at hhs.nl>:
> >>
> >>
> >> 1) The cross compile stuff being discussed so far was about a cross
> >>    compiling binutils + gcc + libs, sdcc is a whole different compiler,
> >>    which comes with its own libc (I think) etc. packaging sdcc sure
> >>    would be interesting, and could/should try to follow the guidelines
> >>    being developed for cross-gcc where possible
> >>
> >
> > Even though sdcc comes with its own libc, and are different from gcc
> > in many ways, I do think it makes sense to follow the same guidelines
> > as other cross compilers. This makes everything more consitent.
> >
>
> I'm not sure I've just taken a look at the spec-file for sdcc from your
> review request:
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=226795
>
> And I like what I see, I think that there are 3 distinct issues we need
> to look at when packaging cross-compilers / cross-development tools:
> 1) What does upstream's makefile / configure do by default, deviating
>    from this will cause troubles, cause many makefiles for projects
>    intended te be build with this tools will break if we put things in
>    other places. This is especially important when the build-chain
>    consists of multiple parts as it does with binutils/gcc/xxxlibcxxx
>    because if we decide todo things different there the spec files
>    will turn into huge patch fests to get things further down the chain
>    to build (and we will be inflicting similar pain on people trying to
>    build existing stuff with our tools.
>
> 2) Try to be as FHS compatible as possible, except where this breaks 1
>
> 3) Files most not conflict, so sdcc installing a /usr/bin/cc is a BAD
>    idea (_fictional_ example). In the case were upstream doesn't do this
>    themselves all files under /usr/bin must be prefixed with a common
>    prefix. Likewise header files for cross development must not go under
>    /usr/include, but in their own private dir. The same for libs.
>
> This leads to the conclusion that partially this will be a case by case
> job. For cross-compiling gcc(chain) rpms we can make guidelines, but I
> do not believe that we should force packages for other cross-compilers
> to follow these guidelines. On the contrary, I believe we should stay as
> close to upstream as possible, to minimize the element of surprise for
> end users.
>
> This is why I plea for a cross-compiler SIG, so far I know of the
> following people being interested:
>
> Hans de Goede   (avr-gcc, arm-linux-gp2x-gcc)
> Kevin Kofler    (tigcc)
> Ralf Corsepius  (rtems)
> Trond Danielsen (sdcc, avr-gcc, avr32-gcc, Analog Devices Blackfin)
>
> So assuming all named people are reading this, who's in? I'am in myself
> ofcourse and (see below) I believe Trond is in too.

Confirmed. Count me in.

>
> Then within this SIG we can try to create general cross compiling
> guidelines and where this makes sense because there is a whole family
> with a common pattern, per compiler-family guidelines. The document
> which I posted earlier:
> https://www.redhat.com/archives/fedora-extras-list/2007-February/msg00329.html
>
> Is in me eyes a reasonable start for guidelines for the gcc-family of
> cross compilers.
>

I think this is a very good starting point for a complete set of guide
lines. What remains is to create a wiki page, so that we can start

> > The spec file for sdcc is almost complete, but I wanted to clarify
> > some of the questions I had regarding "best practice" with regards to
> > cross compilers.
> >
>
> As said I've taken a quick peek and I like it, what questions do you have?
>

The main issue is the install path. avr-gcc installs everything into
$prefix/avr, which I think is a good solution. Somebody commented in
bugzilla that some of the names of the binaries from sdcc where to
generic, and I therefore moved the binaries to /usr/libexec/sdcc, and
created symlinks to /usr/bin. But I wonder if this is a good
solution...?

> > I would very much like to contribute to make this happend. I have both
> > a personal and professional interest in seeing as many tools for
> > embedded system development available in the Fedora repositories.
> > There are a number of tools that are missing, that would make Fedora a
> > more attractive target for engineers. A quick summary:
> >
> > - Tools for Atmels AVR and AVR32 processors. Both are supported by
> > free software tools.
> > - Tools for Analog Devices Blackfin. This DSP runs uclinux, and
> > compilers and other related tools are available.
> >
> > Once the guidelines are completed, I will get down to packing up as
> > many of these as possible.
> >
>
> Welcome aboard, notice that I've got a couple of last-year CS students
> working on packaging avr-gcc, so please contact me before things get
> done twice.
>


-- 
Trond Danielsen




More information about the fedora-extras-list mailing list