On 2011-Sep-10 12:46:50 +0300, Andriy Gapon <avg_at_FreeBSD.org> wrote: >on 10/09/2011 11:07 Andriy Gapon said the following: >> Actually, removing either -mrtd _or_ -fno-unit-at-a-time produces the correct >> code. Puzzled. > >The problem is reproducible with base gcc and gcc42, it is not reproducible >with gcc45, gcc46 and clang. I was just checking gcc44 & gcc46. gcc44 inlines the entire function and I couldn't quickly find the offending code to see if the bug was there or not. I agree you've triggered a gcc bug but I'm not sure of the correct approach to fix it. I've tried a few trivial code transforms within vdev_read_phys() but haven't stumbled on one that avoids the problem. Since -mrtd changes the calling convention, it's a more intrusive change. I'm not sure if there's any simple way to alter CFLAGS for a single file (since we only want to alter the zfsboot.c compilation. -- Peter Jeremy
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:17 UTC