linux-mips
[Top] [All Lists]

gcc 3.4 / bad_unaligned_access_length

To: linux-mips@linux-mips.org
Subject: gcc 3.4 / bad_unaligned_access_length
From: Gregory Nutt <greg.nutt@cadenux.com>
Date: Wed, 06 Oct 2004 08:51:11 -0600
Organization: Cadenux, LLC
Original-recipient: rfc822;linux-mips@linux-mips.org
Reply-to: greg.nutt@cadenux.com
Sender: linux-mips-bounce@linux-mips.org
Hi, List,

I have been struggling to bring up 2.6.8-rc2 on an Au1100 processor.  I
am using gcc 3.4.1 which seems to the be source of most of the issues
that I have been having.

Here is the last issue:

- At boot time, I was encountering a fault in slab.c -- ac_data
  was returning a NULL pointer.  But when I put in lots of printk's
  the problem disappeared.  Hmmm.. sound like an optimization
  issue.  Has anyone else seen this?

- So I tried lowering the optimization to -O1 by editting the top-
  level Makefile.  Now, to my surprise, I can no longer link the
  kernel.  I get:

  "fs/built-in.o(.text+0x3a0c4): In function `parse_extended':
  : undefined reference to `bad_unaligned_access_length'"

  This repeats several times.

I grep'ped through the kernel.  I see that bad_unaligned_access_length()
is externed in include/asm-mips/unaligned.h.  It is also used in the
default: case of several inline functions in that same file.  It is not
referenced or defined anywhere else in the kernel.

My hunch is that at -O2 the calls to bad_unaligned_access_length() were
optimized away and all is well.  But at -O1 they are not.

Greg Nutt
-- 
Gregory Nutt <greg.nutt@cadenux.com>
Cadenux, LLC


<Prev in Thread] Current Thread [Next in Thread>