[OpenAFS-devel] Re: Compiling openafs on arm64/aarch64 architecture

Micheal waltz mwaltz@qualcomm.com
Fri, 5 Sep 2014 06:14:38 -0700


--------------030802030407080904050501
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 7bit

On 09/04/2014 04:53 PM, Benjamin Kaduk wrote:
>
> >From a quick skim, all of the errors seem to be due to a missing
> definition for struct AFS_FLOCK in this scope.  That's a bit confusing.
> Looking at where AFS_FLOCK is defined as a preprocessor macro in
> src/afs/afs.h, it looks like you may be getting the 'flock64' define
> instead of 'flock', since AFS_LINUX_64BIT_KERNEL is not defined in your
> param.arm64_linux26.h.  I would try adding that (and maybe seeing if there
> are similar things missing, by comparing the amd64, i386, and arm versions
> of those config headers), and attempting again to build.

This made it slightly farther into the kernel module build, it's now 
giving errors about pioctl32:

/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c: 
In function 'copyin_afs_ioctl':
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:146:2: 
error: #error pioctl32 not done for this linux
  #error pioctl32 not done for this linux
   ^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c: 
In function 'copyin_iparam':
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:421:2: 
error: #error iparam32 not done for this linux platform
  #error iparam32 not done for this linux platform
   ^
make[6]: *** 
[/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.o] 
Error 1

Which in src/afs/afs_syscall.c looks like it there are blocks for other 
64-bit Linux archs when AFS_LINUX_64BIT_KERNEL is defined. I don't think 
I can just copy the amd64 block for arm64 however since it appears to 
have Intel specifics.

Micheal

--------------030802030407080904050501
Content-Type: text/html; charset="windows-1252"
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 09/04/2014 04:53 PM, Benjamin Kaduk wrote:<br>
    <blockquote
      cite="mid:alpine.GSO.1.10.1409041937070.21571@multics.mit.edu"
      type="cite"><br>
      <pre wrap="">&gt;From a quick skim, all of the errors seem to be due to a missing
definition for struct AFS_FLOCK in this scope.  That's a bit confusing.
Looking at where AFS_FLOCK is defined as a preprocessor macro in
src/afs/afs.h, it looks like you may be getting the 'flock64' define
instead of 'flock', since AFS_LINUX_64BIT_KERNEL is not defined in your
param.arm64_linux26.h.  I would try adding that (and maybe seeing if there
are similar things missing, by comparing the amd64, i386, and arm versions
of those config headers), and attempting again to build.
</pre>
    </blockquote>
    <br>
    This made it slightly farther into the kernel module build, it's now
    giving errors about pioctl32:<br>
    <br>
    /home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:
    In function 'copyin_afs_ioctl':<br>
    /home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:146:2:
    error: #error pioctl32 not done for this linux<br>
     #error pioctl32 not done for this linux<br>
      ^<br>
    /home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:
    In function 'copyin_iparam':<br>
    /home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.c:421:2:
    error: #error iparam32 not done for this linux platform<br>
     #error iparam32 not done for this linux platform<br>
      ^<br>
    make[6]: ***
    [/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_syscall.o]
    Error 1<br>
    <br>
    Which in src/afs/afs_syscall.c looks like it there are blocks for
    other 64-bit Linux archs when
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
    AFS_LINUX_64BIT_KERNEL is defined. I don't think I can just copy the
    amd64 block for arm64 however since it appears to have Intel
    specifics.<br>
    <br>
    Micheal<br>
  </body>
</html>

--------------030802030407080904050501--