Re: [XFree86] cross compile xfree86-4.8.0

2009-10-15 Thread Marc Aurele La France

On Wed, 14 Oct 2009, Marc Aurele La France wrote:

On Wed, 14 Oct 2009, john blair wrote:

--- On Wed, 10/14/09, Marc Aurele La France t...@ualberta.ca wrote:

From: Marc Aurele La France t...@ualberta.ca
Subject: Re: [XFree86] cross compile xfree86-4.8.0
To: john blair mailtome200420032...@yahoo.com
Cc: XFree86@XFree86.Org
Date: Wednesday, October 14, 2009, 8:21 PM
On Tue, 13 Oct 2009, john blair wrote:

Thanks for the reply Marc. But I don't think code

sourcery's arm

toolchain (http://www.codesourcery.com/sgpp/lite/arm) consist
linux/utsrelease.h file.
I end up with the following error:
imakemdep.h:835:34: error: linux/utsrelease.h: No such

file or directory



No mainline kernel source tarball contains
include/linux/version.h, nor
include/linux/utsrelease.h.  They are both generated by
the kernel build process, but the latter only after
2.6.17.  But the version.h included here advertises a
kernel version of 2.6.29.  See ...



http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=63104eec234bdecb55fd9c15467ae00d0a3f42ac



Therefore, the toolchain tarball was misgenerated in that
it does not also contain utsrelease.h.  Likely an
oversight.  Please report this problem to CodeSourcery
and see what they say.



This is the reply I got from code sourcery
My Debian desktop system also has linux/version.h but no
utsrelease.h.  I also checked upstream GIT kernel sources, and while
both headers are built only version.h is installed
(include/linux/Kbuild:objhdr-y).  CodeSourcery's current tools use the
recommended make headers_install to distribute kernel headers.



Are you trying to build a userspace server or a kernel module?
utsrelease.h might be available for kernel modules, which require a
build tree.



http://www.codesourcery.com/archives/arm-gnu/msg02922.html


Hummm.  That's a good point.  Looking deeper, this string isn't even used, 
nor is it generated in the non-cross-compile case.



I'll get back to you.


Please use the following instead of the previous change ...

*** cvs/xc/config/imake/imakemdep.h Mon Jun 11 08:30:00 2007
--- devel/xc/config/imake/imakemdep.h   Thu Oct 15 09:56:47 2009
*** char *cpp_argv[ARGUMENTS] = {
*** 831,837 
  #  if defined(linux)  defined  (CROSSCOMPILE_CPP)
  #   define CROSS_UTS_SYSNAME Linux
  #   include linux/version.h
! #   define CROSS_UTS_RELEASE UTS_RELEASE
  # endif
  # elif defined(__CYGWIN__)
  #  define DEFAULT_OS_MAJOR_REVr %[0-9]
--- 831,839 
  #  if defined(linux)  defined  (CROSSCOMPILE_CPP)
  #   define CROSS_UTS_SYSNAME Linux
  #   include linux/version.h
! #   ifdef UTS_RELEASE
! #define CROSS_UTS_RELEASE UTS_RELEASE
! #   endif
  # endif
  # elif defined(__CYGWIN__)
  #  define DEFAULT_OS_MAJOR_REVr %[0-9]

This will cause the release string to be nullified, which is what would 
happen with other cross-compilation environments that don't provide 
release information (or, for that matter, other `uname` strings).


Marc.

+--+--+
|  Marc Aurele La France   |  work:   1-780-492-9310  |
|  Academic Information and|  fax:1-780-492-1729  |
|Communications Technologies   |  email:  t...@ualberta.ca |
|  352 General Services Building   +--+
|  University of Alberta   |  |
|  Edmonton, Alberta   |Standard disclaimers apply|
|  T6G 2H1 |  |
|  CANADA  |  |
+--+--+

Re: [XFree86] cross compile xfree86-4.8.0

2009-10-15 Thread Marc Aurele La France

On Thu, 15 Oct 2009, john blair wrote:

--- On Thu, 10/15/09, Marc Aurele La France t...@ualberta.ca wrote:

Please use the following instead of the previous change
...



*** cvs/xc/config/imake/imakemdep.h    Mon
Jun 11 08:30:00 2007
--- devel/xc/config/imake/imakemdep.h    Thu
Oct 15 09:56:47 2009
*** char *cpp_argv[ARGUMENTS] = {
*** 831,837 
  #  if defined(linux)  defined

?? (CROSSCOMPILE_CPP)

  #   define CROSS_UTS_SYSNAME Linux
  #   include linux/version.h
! #   define CROSS_UTS_RELEASE UTS_RELEASE
  # endif
  # elif defined(__CYGWIN__)
  #  define DEFAULT_OS_MAJOR_REV 

??     r %[0-9]

--- 831,839 
  #  if defined(linux)  defined

?? (CROSSCOMPILE_CPP)

  #   define CROSS_UTS_SYSNAME Linux
  #   include linux/version.h
! #   ifdef UTS_RELEASE
! #    define CROSS_UTS_RELEASE UTS_RELEASE
! #   endif
  # endif
  # elif defined(__CYGWIN__)
  #  define DEFAULT_OS_MAJOR_REV 

??     r %[0-9]


This will cause the release string to be nullified, which
is what would happen with other cross-compilation
environments that don't provide release information (or, for
that matter, other `uname` strings).



Thanks for the quick reply and patch Marc. Your patch fixes the UTS_RELEASE 
issue.
There is another issue I am facing during the compilation:
fbdevhw.c: In function 'calculateFbmem_len':
fbdevhw.c:548: error: 'PAGE_MASK' undeclared (first use in this function)
fbdevhw.c:548: error: (Each undeclared identifier is reported only once
fbdevhw.c:548: error: for each function it appears in.)
fbdevhw.c: In function 'fbdevHWMapVidmem':
fbdevhw.c:575: error: 'PAGE_MASK' undeclared (first use in this function)
fbdevhw.c: In function 'fbdevHWMapMMIO':
fbdevhw.c:620: error: 'PAGE_MASK' undeclared (first use in this function)
fbdevhw.c: In function 'fbdevHWUnmapMMIO':
fbdevhw.c:644: error: 'PAGE_MASK' undeclared (first use in this function)
make[7]: *** [fbdevhw.o] Error 1
make[7]: Leaving directory 
`/opt/toolchain/src/xfree86-4.8.0/build/programs/Xserver/hw/xfree86/fbdevhw'



The contents of asm/page.h for code sourcery toolchain (the later versions of 
toolchain do not even have asm/page.h)is
#ifndef _ASMARM_PAGE_H
#define _ASMARM_PAGE_H
#endif


Please try the attached.

Marc.

+--+--+
|  Marc Aurele La France   |  work:   1-780-492-9310  |
|  Academic Information and|  fax:1-780-492-1729  |
|Communications Technologies   |  email:  t...@ualberta.ca |
|  352 General Services Building   +--+
|  University of Alberta   |  |
|  Edmonton, Alberta   |Standard disclaimers apply|
|  T6G 2H1 |  |
|  CANADA  |  |
+--+--+
XFree86 developer and VP.  ATI driver and X server internals.

fbdevhw.diff.gz
Description: GNU Zip compressed data