Hi Andrew
I have decided to split the compiler tests into two parts: the first calls
only snc and has the strict checks for the output (counts "error" and
"warning" words). This works since I have the snc compiler under my own
control. Also, since snc output does not depend on the target arch, it
suffices to do these tests once (i.e for the HOST arch). The second group
will test the whole tool chain and is used only for those tests that need to
rely on the C compiler/preprocessor to reject certain constructs generated
by snc. These tests call `make -s -B TESTPROD=$test` but do not inspect the
output, they only check the return code. These tests can and should be
performed for all target archs.
On Sunday, June 26, 2011, you wrote:
> On Saturday, June 25, 2011 20:00:34 Benjamin Franksen wrote:
> > This is correct; the problem is that the perl script thinks the test
> > should succeed, not fail, since the EPICS_HOST_ARCH does not match
> > against the string '64'. So, I rather have to adapt the expectation
> > and refine the heuristic that tries to determine 64-bit-ness of the
> > host arch. What is the value of EPICS_HOST_ARCH for your system?
>
> You're going to have "fun" with this test on Macs, which can be
> configured to actually execute the C compiler up to 4 times when you run
> gcc once, depending on the setting for ARCH_CLASS which sends a -arch
> option to gcc. This is how you get it to generate Fat Binaries, which
> contain code for more than one processor architecture. The EPICS build
> system configuration lets individual sites decide what architectures
> they want to include in their binaries on darwin.
>
> If you look at the comments in the file
> base/configure/os/CONFIG_SITE.Common.darwin-ppcx86
> you'll get some idea of the possible combinations (the CONFIG_SITE files
> for the other darwin target-architectures contain a reduced list of
> possibilities, but in practice any target-arch can be configured to
> build for any combination of binaries).
I don't understand why things have been done this way. I thought 'target
architecture' means what it says?
> This means you shouldn't try to
> rely on EPICS_HOST_ARCH containing the string "64" when you're building
> for a 64-bit CPU, and even if it does it isn't necessarily going to be
> /only/ building for a 64-bit CPU.
Hm, does that also mean I can not even rely on parsing the current directory
to find out which target arch I am on? Could I test the value of ARCH_CLASS
in the Makefile to decide whether a test should fail or not?
Cheers
Ben
________________________________
Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.
Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-Rudolph
Geschäftsführer: Prof. Dr. Anke Rita Kaysser-Pyzalla, Dr. Ulrich Breuer
Sitz Berlin, AG Charlottenburg, 89 HRB 5583
Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin
http://www.helmholtz-berlin.de
- Replies:
- Re: Sequencer news: latest snapshot Andrew Johnson
- Re: Sequencer news: latest snapshot J. Lewis Muir
- References:
- Sequencer news: latest snapshot Benjamin Franksen
- Re: Sequencer news: latest snapshot Benjamin Franksen
- Re: Sequencer news: latest snapshot Andrew Johnson
- Navigate by Date:
- Prev:
Re: Sequencer news: latest snapshot Andrew Johnson
- Next:
Newport XPS and Motor record John Dobbins
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Sequencer news: latest snapshot Andrew Johnson
- Next:
Re: Sequencer news: latest snapshot Andrew Johnson
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|