On Mon, 27 Jun 2005 01:05:28 +0200
Andreas Kies <[email protected]> wrote:
> Hello,
>
> When running a kernel module compiled with gcc 3.3.5, I think I've found a
> bug in either the compiler or the kernel definition of strcmp in
> asm-i386/string.h . The exact compiler version is :
>
> Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.5/specs
> Configured with: ../configure --enable-threads=posix --prefix=/usr
> --with-local-prefix=/usr/local --infodir=/usr/share/info
> --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada
> --disable-checking --libdir=/usr/lib --enable-libgcj --with-slibdir=/lib
> --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux
> Thread model: posix
> gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)
>
> I was able to construct a small pure usermode program.
> If you compile the included test program with optimization level 1 or less
> it works, if compiled with level 2 it fails. Failing means the strcmp
> result is != 0 because char ptr has valid contents at the time strcmp is
> expanded. Other platforms besides i386 might be affected, too.
> In the case of a failure you get "Unrecognized" as output on stdout.
>
> So, here are my questions :
> - Is this a bug in the compiler ?
> In Documentation/Changes version 2.95.x is still recommended, I guess this
> is outdated.
> - Is it a bug in the definition of strcmp ? Maybe an addition volatile is
> missing.
>
> Thanks for reading.
>
...
>
> int oem;
>
> int main(void)
> {
> char ptr[2];
what happens if you change "char ptr[2]" to "volatile char ptr[2]" ?
--
Paolo Ornati
Linux 2.6.12.1 on x86_64
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]