On Tue, Sep 3, 2013 at 2:31 AM, Michael Cree <[email protected]> wrote:

> And how do you detect armv7 specific cpu instructions when you build
> on armv7 infrastructure?  Is it possible to somehow limit a chroot to
> trap on invalid armv6 instructions despite running on armv7?  Or do you
> re-run test suites after successful builds on an actual Pi?
>
> Cheers
> Michael.
> --
>

When building armhf packages for Raspbian, there are a few extra steps in
the buildd process where by each binary file in the package containing code
is checked with a Perl script to verify that it does not contain armv7
instructions.  We depend upon the fields in the elf file properly
describing the code that was produced for each code segment in the file.
Any packages discovered to have armv7 are set aside by the script to be
manually inspected.

Overall, this process is fairly effective.  I don't think it produces any
false negatives.  However, certain type of binaries that dynamically
determine the CPU type such as virtual machines and some types of
interpreters (ie. JavaScript) will produce false positives.  These files
can be manually passed along into the Raspbian repository as the armv7 code
will by dynamically isolated at runtime.  There a handful of packages that
specifically depend upon armv7 features (ie. debugging libraries and such)
and these need to be kept from the Raspbian repositories.

Other than the process above, no attempt is made to verify the running of
the package on actual armv6 hardware.  Thus far, such an extra step hasn't
been warranted given the extra effort it would take to implement.

Plugwash may have additional information to add since he's been revamping
the entire Raspbian build process and what I'm describing is how things
worked for the initial release of Raspbian.

Mike Thompson

Reply via email to