All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bart Samwel <bart@samwel.tk>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Tim Cambrant <tim@cambrant.com>,
	Mario Vanoni <vanonim@bluewin.ch>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH][TRIVIAL] Remove bogus "value 0x37ffffff truncated to 0x37ffffff" warning.
Date: Sun, 11 Jan 2004 01:25:04 +0100	[thread overview]
Message-ID: <400097E0.5040900@samwel.tk> (raw)
In-Reply-To: <Pine.LNX.4.44.0401101243110.2210-100000@bigblue.dev.mdolabs.com>

Davide Libenzi wrote:
>>>#define MAXMEM                       (~__PAGE_OFFSET + 1 - __VMALLOC_RESERVE)
>>
>>I tried that first, before I came up with the solution in the patch, 
>>because I didn't like the dependency of 0xFFFFFFFF being 32-bit. It was 
>>a nice idea, but it didn't work. Apparently, gas interprets ~ as a one's 
>>complement negation operator, not a bitwise or. Therefore, 
>>~__PAGE_OFFSET is just as negative as -__PAGE_OFFSET as far as gas is 
>>concerned. It gives me the same warning.
> 
> 
> That would mean a bug in as. __PAGE_OFFSET is unsigned and ~ is documented 
> (not a surprise) as "bitwise not". The bitwise not of __PAGE_OFFSET 
> (unsigned) is still unsigned. BTW 2.14 does not give warnings with both 
> the original statement and the ~ one. This:
> 
>                                                                                                                         
>         PG=0xC0000000                                                                                                   
>         VM=(128 << 20)                                                                                                  
>                                                                                                                         
>         mov (~PG + 1 - VM), %eax                                                                                        
>         mov (-PG - VM), %eax                                                                                            
>                                                                                                                         
> generate this:
> 
> zzzzzzzz:     file format elf32-i386
> 
> Disassembly of section .text:
> 
> 00000000 <.text>:
>    0:   a1 00 00 00 38          mov    0x38000000,%eax
>    5:   a1 00 00 00 38          mov    0x38000000,%eax
> 
> 
> w/out any warnings. And the result is obviously 0x38000000 and 
> not 0x37ffffff.

I get the same behaviour. The 0x37ffffff is from the place where MAXMEM 
is used (the ramdisk_max variable in setup.S); it subtracts one from the 
value. It turns out that the error only occurs when the value is used in 
a data definition. Experimentally found first value for which it gives 
the error is:

ramdisk_max: .long ~(0x80000000)

Interestingly, it doesn't occur for 0x7fffffff. I've taken a look at gas 
to see where it goes wrong, but my newly built version doesn't exhibit 
this behaviour -- it compiles the above statement without warnings. It 
might have to do with the differences between the build environment that 
the Debian binutils package is built in and my own machine -- I'll do 
some more investigating.

-- Bart

  reply	other threads:[~2004-01-11  0:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-10 15:40 2.6.1-mm2: compiler warning Mario Vanoni
2004-01-10 15:56 ` Tim Cambrant
2004-01-10 17:28   ` [PATCH][TRIVIAL] Remove bogus "value 0x37ffffff truncated to 0x37ffffff" warning Bart Samwel
2004-01-10 17:39     ` Davide Libenzi
2004-01-10 20:20       ` Bart Samwel
2004-01-10 21:04         ` Davide Libenzi
2004-01-11  0:25           ` Bart Samwel [this message]
2004-01-11 13:58             ` Bart Samwel
2004-01-11 16:53               ` Davide Libenzi
2004-01-11 17:44                 ` Martin Schlemmer
2004-01-11 17:53                   ` Davide Libenzi
2004-01-11 18:38                     ` Martin Schlemmer
2004-01-11 18:42                       ` Davide Libenzi
2004-01-11 18:47                         ` Martin Schlemmer
2004-01-11 20:47                           ` Davide Libenzi
2004-01-11 21:29                             ` Martin Schlemmer
2004-01-12  1:15                               ` Bart Samwel
2004-01-12  0:48                 ` Bart Samwel
2004-01-12  0:52                   ` Davide Libenzi
2004-01-12  1:10                     ` Bart Samwel
2004-01-10 18:42     ` Gene Heskett
2004-01-10 20:14       ` Bart Samwel
2004-01-10 20:50         ` Gene Heskett
2004-01-10 17:31   ` 2.6.1-mm2: compiler warning Hans Ulrich Niedermann
2004-01-10 23:40     ` Petri Koistinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=400097E0.5040900@samwel.tk \
    --to=bart@samwel.tk \
    --cc=akpm@osdl.org \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim@cambrant.com \
    --cc=vanonim@bluewin.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.