Ian,
Many thanks for this information. As far as I can see, the assembler
in this version of Mac OS X (provided with Apple's development tools)
is:
bash>as -v
Apple Computer, Inc. version cctools-667.3~21, GNU assembler version
1.38
From its 'man' page:
-----------------------------
The program /usr/bin/as is actually a driver that executes
assemblers
for specific target architectures. If no target architecture
is speci-
fied, it defaults to the architecture of the host it is
running on.
...
-v Display the version of the assembler (both the Mac OS
X version
and the GNU version it is based on).
-----------------------------
What is less clear is why my failure is reported at stage 2 of the 3
stage
bootstrap. It was reported as:
make[3]: *** [lex.o] Error 1
make[2]: *** [all-stage2-libcpp] Error 2
make[1]: *** [stage2-bubble] Error 2
make: *** [all] Error 2
As far as I can see, the same assembler would have been used at
stages 1 and 2. It would be expected also that the same source files
were
used. An assembler file generated at stage 2 by the compilation using
the
executable compilation system generated by stage 1 might well differ
from
the corresponding one produced at stage 1 by a different compilation
system.
However, the response below suggests that it is part of libcpp written
in
assembly code - so would be expected to be the same at both stages.
Regardless of the explanation for the above, is there any suggestion
as to how I can complete the bootstrap?
Thanks,
Ellis N. Thomas
On 29 Apr 2013, at 16:07, Ian Lance Taylor wrote:
On Mon, Apr 29, 2013 at 1:33 AM, Ellis N. Thomas
<ExtraLeveLInSoftware@xxxxxxxxxxxx> wrote:
Trying to build gcc-4.7.2.
Failed in stage2, last few lines of make-4.log:
../../src/gcc-4.7.2/libcpp/lex.c:463:Unknown pseudo-op: .balign
../../src/gcc-4.7.2/libcpp/lex.c:463:Rest of line ignored. 1st junk
I would describe this as a bug in libcpp, introduced here:
2010-08-21 Richard Henderson <rth@xxxxxxxxxx>
Andi Kleen <ak@xxxxxxxxxxxxxxx>
David S. Miller <davem@xxxxxxxxxxxxx>
* configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
(ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
(ptrdiff_t): Check via AC_CHECK_TYPE.
* config.in, configure: Rebuild.
* system.h: Include stdint.h, if available.
* lex.c (WORDS_BIGENDIAN): Provide default.
(acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
search_line_sse2, search_line_sse42, init_vectorized_lexer,
search_line_fast): New.
(_cpp_clean_line): Use search_line_fast. Restructure the fast
loop to make it clear when we're leaving the loop. Stay in the
fast loop for non-trigraph '?'.
libcpp contains assembler code for faster processing. That assembler
code uses .balign. That usually works, but evidently the Darwin
assembler does not support it.
I think this code needs to be fixed to check for .balign support.
Ian