lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 31 Jan 2008 08:50:53 -0800
From:	Jeremy Fitzhardinge <jeremy@...p.org>
To:	Adrian Bunk <bunk@...nel.org>
CC:	Ingo Molnar <mingo@...e.hu>, wli@...omorphy.com,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	linux-kernel@...r.kernel.org,
	Andrew Morton <akpm@...ux-foundation.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	"H. Peter Anvin" <hpa@...or.com>, sparclinux@...r.kernel.org
Subject: Re: sparc compile error caused by x86 arch updates

Adrian Bunk wrote:
> On Thu, Jan 31, 2008 at 05:15:23PM +0100, Ingo Molnar wrote:
>   
>> * Adrian Bunk <bunk@...nel.org> wrote:
>>
>>     
>>> On Thu, Jan 31, 2008 at 05:00:33PM +0100, Ingo Molnar wrote:
>>>       
>>>> * Adrian Bunk <bunk@...nel.org> wrote:
>>>>
>>>>         
>>>>> You tested x86 but broke more than half a dozen other archtectures, 
>>>>> with at least 3 different commits breaking other architectures.
>>>>>           
>>>> Note that all known breakages are fixed in current -git, except for the 
>>>> s390 problem that Martin/Nick posted the fix.
>>>>         
>>> What about the breakages caused by commit 
>>> a5a19c63f4e55e32dc0bc3d936d7f94793d8b380 (this commit broke the 
>>> defconfig compilation on at least avr32, blackfin, sh, sparc and uml)?
>>>       
>> the patch below fixes that.
>>     
>
> The sparc breakage (might not have been reported until now and I 
> bisected it just a few minutes ago) is caused by the following part of 
> commit a5a19c63f4e55e32dc0bc3d936d7f94793d8b380:
>
> --- a/include/linux/swap.h
> +++ b/include/linux/swap.h
> @@ -6,6 +6,7 @@
>  #include <linux/mmzone.h>
>  #include <linux/list.h>
>  #include <linux/sched.h>
> +#include <linux/pagemap.h>
>  
>  #include <asm/atomic.h>
>  #include <asm/page.h>
>
>
>   

Drat.  I added that because of

/* only sparc can not include linux/pagemap.h in this file
 * so leave page_cache_release and release_pages undeclared... */
#define free_page_and_swap_cache(page) \
	page_cache_release(page)
#define free_pages_and_swap_cache(pages, nr) \
	release_pages((pages), (nr), 0);


But I guess I overlooked the comment...

I guess the fix is to scatter linux/pagemap.h into the appropriate 
places where these macros are used (asm-generic/tlb.h, for a start).

    J
> The compile error with the sparc defconfig is:
>
> <--  snip  -->
>
> ...
>   CC      init/main.o
> In file included from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/highmem.h:24,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:10,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/swap.h:9,
>                  from include2/asm/pgtable.h:15,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/mm.h:39,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/asm-generic/dma-mapping.h:17,
>                  from include2/asm/dma-mapping.h:6,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/dma-mapping.h:52,
>                  from include2/asm/sbus.h:10,
>                  from include2/asm/dma.h:13,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/bootmem.h:8,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/init/main.c:26:
> include2/asm/highmem.h: In function 'kmap':
> include2/asm/highmem.h:60: error: implicit declaration of function 'PageHighMem'
> include2/asm/highmem.h:61: error: implicit declaration of function 'page_address'
> include2/asm/highmem.h:61: warning: return makes pointer from integer without a cast
> In file included from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/swap.h:9,
>                  from include2/asm/pgtable.h:15,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/mm.h:39,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/asm-generic/dma-mapping.h:17,
>                  from include2/asm/dma-mapping.h:6,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/dma-mapping.h:52,
>                  from include2/asm/sbus.h:10,
>                  from include2/asm/dma.h:13,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/bootmem.h:8,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/init/main.c:26:
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h: In function 'lock_page':
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:169: error: implicit declaration of function 'TestSetPageLocked'
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h: In function 'wait_on_page_locked':
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:199: error: implicit declaration of function 'PageLocked'
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:200: error: 'PG_locked' undeclared (first use in this function)
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:200: error: (Each undeclared identifier is reported only once
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:200: error: for each function it appears in.)
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h: In function 'wait_on_page_writeback':
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:208: error: implicit declaration of function 'PageWriteback'
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/pagemap.h:209: error: 'PG_writeback' undeclared (first use in this function)
> In file included from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/asm-generic/dma-mapping.h:17,
>                  from include2/asm/dma-mapping.h:6,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/dma-mapping.h:52,
>                  from include2/asm/sbus.h:10,
>                  from include2/asm/dma.h:13,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/bootmem.h:8,
>                  from /home/bunk/linux/kernel-2.6/git/linux-2.6/init/main.c:26:
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/mm.h: At top level:
> /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/mm.h:556: error: conflicting types for 'page_address'
> include2/asm/highmem.h:61: error: previous implicit declaration of 'page_address' was here
> make[2]: *** [init/main.o] Error 1
> make[1]: *** [init] Error 2
> make: *** [sub-make] Error 2
>
> <--  snip  -->
>
>
>   
>> 	Ingo
>>     
>
> cu
> Adrian
>
>   

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ