All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: monstr@monstr.eu
Cc: microblaze-uclinux@itee.uq.edu.au,
	John Williams <john.williams@petalogix.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Remis Lima Baima <remis.developer@googlemail.com>,
	John Linn <John.Linn@xilinx.com>
Subject: Re: [microblaze-uclinux] [PATCH 03/11] microblaze: fall back on generic header files for the ABI
Date: Fri, 3 Jul 2009 19:16:26 +0200	[thread overview]
Message-ID: <200907031916.26214.arnd@arndb.de> (raw)
In-Reply-To: <4A4D9D41.5090006@monstr.eu>

On Friday 03 July 2009, Michal Simek wrote:
> 
> > Initially I had hoped that we could do the change before 2.6.30 and
> > I worked hard on getting the ABI patches to you early enough for
> > that. After that failed, I made sure that you had everything in
> > place for 2.6.31 and I believed that Michal said he would integrate
> > that in the microblaze-mmu merge, before you actually start seeing
> > users on the mainline kernel.
> 
> we are talking about minor change - I know it break ABI a little bit
> but don't be scared with it.

The data structures are all compatible by now, with this one exception.
__kernel_mode_t is easy enough to fix in the generic headers if it
really helps.

My frustration is only about the system call list, which has
not been fixed, and which will cause a significant ABI break
once you change it. If you are lucky, most applications will still
work after you install a matching libc, but you still get a
cross-dependency between libc and the kernel.

This means you may not want to really use the generic syscall numbers,
but at least you should make sure that your table is consistent.
FWIW, below you find a list of inconsistencies.

	Arnd <><

System calls that have a number but are missing an entry in your sys_call_table:

sys_preadv
sys_pwritev
sys_pselect6
sys_ppoll
sys_sigaltstack
sys_migrate_pages /* not needed */
sys_futimesat /* not needed */

System call numbers you might need for binary compatiblily and
should have removed earlier:
__NR_waitpid                                                                                                                                            
__NR_stime                                                                                                                                              
__NR_nice                                                                                                                                               
__NR_oldstat                                                                                                                                            
__NR_oldfstat                                                                                                                                           
__NR_oldlstat                                                                                                                                           
__NR_sigaction                                                                                                                                          
__NR_sgetmask                                                                                                                                           
__NR_ssetmask                                                                                                                                           
__NR_sigsuspend                                                                                                                                         
__NR_sigpending                                                                                                                                         
__NR_socketcall                                                                                                                                         
__NR_readdir                                                                                                                                            
__NR_sigreturn                                                                                                                                          
__NR_sigprocmask                                                                                                                                        
__NR_ipc                                                                                                                                                
__NR_sysfs                                                                                                                                              

Numbers that you really really should simply not #define, with no
chance of breaking anything:
__NR_break                                                                                                                                              
__NR_stty                                                                                                                                               
__NR_gtty                                                                                                                                               
__NR_ftime                                                                                                                                              
__NR_prof                                                                                                                                               
__NR_lock                                                                                                                                               
__NR_mpx                                                                                                                                                
__NR_ulimit                                                                                                                                             
__NR_oldolduname                                                                                                                                        
__NR_profil                                                                                                                                             
__NR_ioperm                                                                                                                                             
__NR_olduname                                                                                                                                           
__NR_iopl                                                                                                                                               
__NR_idle                                                                                                                                               
__NR_vm86old                                                                                                                                            
__NR_modify_ldt                                                                                                                                         
__NR_create_module                                                                                                                                      
__NR_get_kernel_syms                                                                                                                                    
__NR_afs_syscall
__NR__newselect
__NR_vm86
__NR_query_module
__NR_getpmsg
__NR_putpmsg
__NR_ugetrlimit
__NR_set_thread_area
__NR_get_thread_area
__NR_vserver
__NR_accept04 /* typo? */

Duplicate system call numbers:
__NR_lchown32
__NR_getuid32
__NR_getgid32
__NR_geteuid32
__NR_getegid32
__NR_setreuid32
__NR_setregid32
__NR_getgroups32
__NR_setgroups32
__NR_fchown32
__NR_setresuid32
__NR_getresuid32
__NR_setresgid32
__NR_getresgid32
__NR_chown32
__NR_setuid32
__NR_setgid32
__NR_setfsuid32
__NR_setfsgid32

	Arnd <><

  reply	other threads:[~2009-07-03 17:16 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18 17:55 [PATCH 00/11] microblaze: use generic headers Arnd Bergmann
2009-06-18 17:55 ` [PATCH 01/11] ipc: use __ARCH_WANT_IPC_PARSE_VERSION in ipc/util.h Arnd Bergmann
2009-06-18 17:55   ` [PATCH 02/11] microblaze: remove init_mm Arnd Bergmann
2009-06-18 17:55   ` [PATCH 03/11] microblaze: fall back on generic header files for the ABI Arnd Bergmann
2009-07-01 11:34     ` [microblaze-uclinux] " Michal Simek
2009-07-01 11:42       ` Arnd Bergmann
2009-07-01 12:09         ` Michal Simek
2009-07-01 13:41           ` Arnd Bergmann
2009-07-01 22:52       ` John Williams
2009-07-02  9:36         ` Arnd Bergmann
2009-07-03  5:55           ` Michal Simek
2009-07-03 17:16             ` Arnd Bergmann [this message]
2009-06-18 17:55   ` [PATCH 04/11] microblaze: use generic unistd.h syscall list Arnd Bergmann
2009-06-18 17:55   ` [PATCH 05/11] microblaze: clean up signal handling Arnd Bergmann
2009-06-18 17:55   ` [PATCH 06/11] microblaze: use generic syscalls.h Arnd Bergmann
2009-06-18 17:55   ` [PATCH 07/11] microblaze: make syscall_table implementation generic Arnd Bergmann
2009-06-18 17:55   ` [PATCH 08/11] microblaze: use the generic lib/checksum.c Arnd Bergmann
2009-07-01 11:35     ` [microblaze-uclinux] " Michal Simek
2009-06-18 17:55   ` [PATCH 09/11] microblaze: convert all simple headers to use asm-generic Arnd Bergmann
2009-07-01 11:35     ` [microblaze-uclinux] " Michal Simek
2009-06-18 17:55   ` [PATCH 10/11] microblaze: use generic system.h Arnd Bergmann
2009-07-01 11:19     ` [microblaze-uclinux] " Michal Simek
2009-07-01 11:39       ` Arnd Bergmann
2009-07-01 11:51         ` Michal Simek
2009-06-18 17:55   ` [PATCH 11/11] microblaze: remove sys_ipc Arnd Bergmann
2009-06-18 22:31   ` [PATCH 01/11] ipc: use __ARCH_WANT_IPC_PARSE_VERSION in ipc/util.h Arnd Bergmann
2009-06-20  1:09     ` [patch] ipc: unbreak 32-bit shmctl/semctl/msgctl Johannes Weiner
2009-06-20  8:20       ` Arnd Bergmann
2009-06-21 19:01         ` Johannes Weiner

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=200907031916.26214.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=John.Linn@xilinx.com \
    --cc=john.williams@petalogix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=monstr@monstr.eu \
    --cc=remis.developer@googlemail.com \
    /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.