public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/57291] New: Failure in build stages 2 and 3 concerning pseudo-op: .balign
@ 2013-05-15 15:09 ExtraLeveLInSoftware at ntlworld dot com
  2013-06-09 19:36 ` [Bug bootstrap/57291] " ncahill_alt at yahoo dot com
  0 siblings, 1 reply; 2+ messages in thread
From: ExtraLeveLInSoftware at ntlworld dot com @ 2013-05-15 15:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57291

            Bug ID: 57291
           Summary: Failure in build stages 2 and 3 concerning pseudo-op:
                    .balign
           Product: gcc
           Version: 4.7.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ExtraLeveLInSoftware at ntlworld dot com

Failure in build stages 2 and 3 of gcc-4.7.2

To: gcc-bugs

1. Introduction

    Trying to build gcc-4.7.2.

    Running Mac OS X:

 System Version:    Mac OS X 10.5.8 (9L30)
 Kernel Version:    Darwin 9.8.0
 >uname -mpv
 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009;
root:xnu-1228.15.4~1/RELEASE_I386 i386 i386

    This bug report concerns the following points.

  - An error reported by make in stage 2

  - The same error reported by make in stage 3


2. Report from configure

    The existing compilation system for stage 1 was obtained as a
ready built version of ada-4.3 in /usr/local/ada-4.3/bin/ (however, it
reports that it is 4.4.0).

bash> gcc --version
gcc (GCC) 4.4.0 20080314 (experimental) [trunk revision 133226]
Copyright (C) 2008 Free Software Foundation, Inc.

    Building in /Gnu/gcc/obj.  Sources in /Gnu/gcc/src/gcc-4.7.2/.

    The configure command was
../src/gcc-4.7.2/gcc-4.7.2/configure --enable-languages=ada,c,c++ 

    This completed OK.


3. An error reported by make in stage2

    Ran make &> ../logs/make-4.log  This redirects error stream too.

    The make 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 character
valued 49 (1).
make[3]: *** [lex.o] Error 1
make[2]: *** [all-stage2-libcpp] Error 2
make[1]: *** [stage2-bubble] Error 2
make: *** [all] Error 2

    It seems that the first build using the older C and Ada compilers has
completed OK, but the next bootstrap stage has failed.

    Help was sought from the gcc-help mailing list (see:
29 April 2013, Ongoing Error in make stage2 building gcc-4.7.2)

    Response on gcc-help from Ian Lance Taylor with suggestion for how to
get round it: in libcpp/config.h "change HAVE_SSE4 to 0".

    The version of the assembler is a possible problem:
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).

-----------------------------


4. An error reported by make in stage3

    Modified libcpp/config.h to change HAVE_SSE4 to 0.  Reran make.
Failed as before (but without redoing most of stage 1).  Last few lines:
../../src/gcc-4.7.2/libcpp/lex.c:463:Unknown pseudo-op: .balign
etc as before ...

    Modified prev-libcpp/config.h as well - failed with the same last few
lines.

    Confirmed the test at the point of failure.

    The test in lex.c affecting line 463 is "#ifdef HAVE_SSE4".
    Modified libcpp/config.h and prev-libcpp/config.h to change HAVE_SSE4 to
undef.

    With this it completed stage 2, but failed in stage 3 with the same
effect:

../../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 character
valued 49 (1).
make[3]: *** [lex.o] Error 1
make[2]: *** [all-stage3-libcpp] Error 2
make[1]: *** [stage3-bubble] Error 2
make: *** [all] Error 2

    So a new config.h needed to be changed.  The libcpp now matched the
prev-libcpp original:
Files libcpp/config.h and prev-libcpp/config.orig.h are identical

    There are also stage1-libcpp, and so on now.

    Applied this change; completed stage3:
Comparing stages 2 and 3
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Comparison successful.


5. Information from the gcc-help mailing list

On 29 Apr 2013, at 16:07, Ian Lance Taylor wrote:

I would describe this as a bug in libcpp, introduced here:

2010-08-21  Richard Henderson  <rth at redhat dot com>
        Andi Kleen <ak at linux.intel dot com>
        David S. Miller  <davem at davemloft dot net>

    * 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.


6. Summary of Bug

6.1 Failure compiling libcpp/lex.c

    The failure "Unknown pseudo-op: .balign" occurs in stages 2 and 3.

    It can be worked round by changing libcpp/config.h to set HAVE_SSE4 to
undef.  This needs to be done at stages 2 and 3.


6.2 Suggested cure from Ian Lance Taylor

On 9 May 2013, at 19:09, Ian Lance Taylor wrote:

The fix will be to add .balign to to the SSE4 test near the end of
libcpp/configure.ac, or to avoid using .balign in the SSE4 assembly
code.

I can't explain the results you showed for the libcpp config.log file,
though.  Based on those I would have expected to see a failure in
stage 1 as well.  Clearly I am missing something.


6.3    If extra information about the matters reported above would be of value
please contact:
    ExtraLeveLInSoftware at ntlworld dot com

Ellis N. Thomas/15-May-2013


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug bootstrap/57291] Failure in build stages 2 and 3 concerning pseudo-op: .balign
  2013-05-15 15:09 [Bug bootstrap/57291] New: Failure in build stages 2 and 3 concerning pseudo-op: .balign ExtraLeveLInSoftware at ntlworld dot com
@ 2013-06-09 19:36 ` ncahill_alt at yahoo dot com
  0 siblings, 0 replies; 2+ messages in thread
From: ncahill_alt at yahoo dot com @ 2013-06-09 19:36 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57291

ncahill_alt at yahoo dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ncahill_alt at yahoo dot com

--- Comment #1 from ncahill_alt at yahoo dot com ---
I see from the binutils changelog that .balign was added to the GNU assembler
in April 1995, so 18 years ago.  Your assembler must be from around that time. 
I suggest updating binutils to 2.23 or newer if possible.  This is a good idea
in general and may fix other, yet to be discovered problems.

Neil Cahill.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-06-09 19:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-15 15:09 [Bug bootstrap/57291] New: Failure in build stages 2 and 3 concerning pseudo-op: .balign ExtraLeveLInSoftware at ntlworld dot com
2013-06-09 19:36 ` [Bug bootstrap/57291] " ncahill_alt at yahoo dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).