Add missing bridge ioctls to make bluez-utils compile with brcm-3.4
[openwrt.git] / target / linux / generic-2.4 / patches / 108-optional_aout_support.patch
1 Index: linux-2.4.35.4/Documentation/Configure.help
2 ===================================================================
3 --- linux-2.4.35.4.orig/Documentation/Configure.help    2007-12-15 05:19:52.251398675 +0100
4 +++ linux-2.4.35.4/Documentation/Configure.help 2007-12-15 05:19:53.139449282 +0100
5 @@ -4690,6 +4690,12 @@
6    ld.so (check the file <file:Documentation/Changes> for location and
7    latest version).
8  
9 +ELF binaries with a.out format interpreters or a.out libraries
10 +CONFIG_BINFMT_ELF_AOUT
11 +  The kernel may support ELF executables which use an a.out format
12 +  interpreter (dynamic linker) and/or a.out shared libraries, in
13 +  addition to the usual ELF-ELF setups. You shouldn't need this.
14 +
15  Kernel support for a.out binaries
16  CONFIG_BINFMT_AOUT
17    A.out (Assembler.OUTput) is a set of formats for libraries and
18 @@ -4703,13 +4709,11 @@
19    warrant removing support. However its removal is a good idea if you
20    wish to ensure that absolutely none of your programs will use this
21    older executable format. If you don't know what to answer at this
22 -  point then answer Y. If someone told you "You need a kernel with
23 +  point then answer N. If someone told you "You need a kernel with
24    QMAGIC support" then you'll have to say Y here. You may answer M to
25    compile a.out support as a module and later load the module when you
26    want to use a program or library in a.out format. The module will be
27 -  called binfmt_aout.o. Saying M or N here is dangerous though,
28 -  because some crucial programs on your system might still be in A.OUT
29 -  format.
30 +  called binfmt_aout.o.
31  
32  OSF/1 v4 readv/writev compatibility
33  CONFIG_OSF4_COMPAT
34 Index: linux-2.4.35.4/arch/alpha/config.in
35 ===================================================================
36 --- linux-2.4.35.4.orig/arch/alpha/config.in    2007-12-15 05:19:41.518787058 +0100
37 +++ linux-2.4.35.4/arch/alpha/config.in 2007-12-15 05:19:53.143449511 +0100
38 @@ -315,6 +315,9 @@
39  fi
40  
41  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
42 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
43 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
44 +fi
45  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
46  tristate 'Kernel support for Linux/Intel ELF binaries' CONFIG_BINFMT_EM86
47  source drivers/parport/Config.in
48 Index: linux-2.4.35.4/arch/alpha/defconfig
49 ===================================================================
50 --- linux-2.4.35.4.orig/arch/alpha/defconfig    2007-12-15 05:19:41.526787516 +0100
51 +++ linux-2.4.35.4/arch/alpha/defconfig 2007-12-15 05:19:53.143449511 +0100
52 @@ -72,6 +72,7 @@
53  # CONFIG_KCORE_AOUT is not set
54  # CONFIG_BINFMT_AOUT is not set
55  CONFIG_BINFMT_ELF=y
56 +# CONFIG_BINFMT_ELF_AOUT is not set
57  # CONFIG_BINFMT_MISC is not set
58  # CONFIG_BINFMT_EM86 is not set
59  
60 Index: linux-2.4.35.4/arch/arm/config.in
61 ===================================================================
62 --- linux-2.4.35.4.orig/arch/arm/config.in      2007-12-15 05:19:41.534787971 +0100
63 +++ linux-2.4.35.4/arch/arm/config.in   2007-12-15 05:19:53.143449511 +0100
64 @@ -499,6 +499,9 @@
65          A.OUT          CONFIG_KCORE_AOUT" ELF
66  tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
67  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
68 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
69 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
70 +fi
71  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
72  dep_bool 'Power Management support (experimental)' CONFIG_PM $CONFIG_EXPERIMENTAL
73  dep_tristate 'RISC OS personality' CONFIG_ARTHUR $CONFIG_CPU_32
74 Index: linux-2.4.35.4/arch/arm/defconfig
75 ===================================================================
76 --- linux-2.4.35.4.orig/arch/arm/defconfig      2007-12-15 05:19:41.542788427 +0100
77 +++ linux-2.4.35.4/arch/arm/defconfig   2007-12-15 05:19:53.143449511 +0100
78 @@ -83,8 +83,9 @@
79  CONFIG_NWFPE=y
80  CONFIG_KCORE_ELF=y
81  # CONFIG_KCORE_AOUT is not set
82 -CONFIG_BINFMT_AOUT=y
83 +# CONFIG_BINFMT_AOUT is not set
84  CONFIG_BINFMT_ELF=y
85 +# CONFIG_BINFMT_ELF_AOUT is not set
86  # CONFIG_BINFMT_MISC is not set
87  # CONFIG_PM is not set
88  # CONFIG_ARTHUR is not set
89 Index: linux-2.4.35.4/arch/cris/config.in
90 ===================================================================
91 --- linux-2.4.35.4.orig/arch/cris/config.in     2007-12-15 05:19:41.550788882 +0100
92 +++ linux-2.4.35.4/arch/cris/config.in  2007-12-15 05:19:53.143449511 +0100
93 @@ -31,6 +31,9 @@
94  bool 'Sysctl support' CONFIG_SYSCTL
95  
96  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
97 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
98 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
99 +fi
100  
101  string 'Kernel command line' CONFIG_ETRAX_CMDLINE "root=/dev/mtdblock3"
102  
103 Index: linux-2.4.35.4/arch/cris/defconfig
104 ===================================================================
105 --- linux-2.4.35.4.orig/arch/cris/defconfig     2007-12-15 05:19:41.554789111 +0100
106 +++ linux-2.4.35.4/arch/cris/defconfig  2007-12-15 05:19:53.147449737 +0100
107 @@ -18,6 +18,7 @@
108  # CONFIG_BSD_PROCESS_ACCT is not set
109  # CONFIG_SYSCTL is not set
110  CONFIG_BINFMT_ELF=y
111 +# CONFIG_BINFMT_ELF_AOUT is not set
112  # CONFIG_ETRAX_KGDB is not set
113  # CONFIG_ETRAX_WATCHDOG is not set
114  
115 Index: linux-2.4.35.4/arch/i386/config.in
116 ===================================================================
117 --- linux-2.4.35.4.orig/arch/i386/config.in     2007-12-15 05:19:41.562789566 +0100
118 +++ linux-2.4.35.4/arch/i386/config.in  2007-12-15 05:19:53.147449737 +0100
119 @@ -329,6 +329,9 @@
120  fi
121  tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
122  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
123 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
124 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
125 +fi
126  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
127  bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER
128  
129 Index: linux-2.4.35.4/arch/i386/defconfig
130 ===================================================================
131 --- linux-2.4.35.4.orig/arch/i386/defconfig     2007-12-15 05:19:41.570790022 +0100
132 +++ linux-2.4.35.4/arch/i386/defconfig  2007-12-15 05:19:53.147449737 +0100
133 @@ -115,9 +115,10 @@
134  CONFIG_SYSCTL=y
135  CONFIG_KCORE_ELF=y
136  # CONFIG_KCORE_AOUT is not set
137 -CONFIG_BINFMT_AOUT=y
138 +# CONFIG_BINFMT_AOUT is not set
139  CONFIG_BINFMT_ELF=y
140 -CONFIG_BINFMT_MISC=y
141 +# CONFIG_BINFMT_ELF_AOUT is not set
142 +# CONFIG_BINFMT_MISC is not set
143  # CONFIG_OOM_KILLER is not set
144  CONFIG_PM=y
145  # CONFIG_APM is not set
146 Index: linux-2.4.35.4/arch/ia64/config.in
147 ===================================================================
148 --- linux-2.4.35.4.orig/arch/ia64/config.in     2007-12-15 05:19:41.578790477 +0100
149 +++ linux-2.4.35.4/arch/ia64/config.in  2007-12-15 05:19:53.147449737 +0100
150 @@ -124,6 +124,9 @@
151  bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
152  bool 'Sysctl support' CONFIG_SYSCTL
153  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
154 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
155 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
156 +fi
157  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
158  
159  if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
160 Index: linux-2.4.35.4/arch/ia64/defconfig
161 ===================================================================
162 --- linux-2.4.35.4.orig/arch/ia64/defconfig     2007-12-15 05:19:41.586790935 +0100
163 +++ linux-2.4.35.4/arch/ia64/defconfig  2007-12-15 05:19:53.151449966 +0100
164 @@ -60,6 +60,7 @@
165  # CONFIG_BSD_PROCESS_ACCT is not set
166  CONFIG_SYSCTL=y
167  CONFIG_BINFMT_ELF=y
168 +# CONFIG_BINFMT_ELF_AOUT is not set
169  # CONFIG_BINFMT_MISC is not set
170  CONFIG_ACPI=y
171  CONFIG_ACPI_EFI=y
172 Index: linux-2.4.35.4/arch/m68k/config.in
173 ===================================================================
174 --- linux-2.4.35.4.orig/arch/m68k/config.in     2007-12-15 05:19:41.594791391 +0100
175 +++ linux-2.4.35.4/arch/m68k/config.in  2007-12-15 05:19:53.151449966 +0100
176 @@ -99,6 +99,9 @@
177  fi
178  tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
179  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
180 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
181 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
182 +fi
183  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
184  
185  if [ "$CONFIG_AMIGA" = "y" ]; then
186 Index: linux-2.4.35.4/arch/m68k/defconfig
187 ===================================================================
188 --- linux-2.4.35.4.orig/arch/m68k/defconfig     2007-12-15 05:19:41.602791846 +0100
189 +++ linux-2.4.35.4/arch/m68k/defconfig  2007-12-15 05:19:53.151449966 +0100
190 @@ -44,8 +44,9 @@
191  CONFIG_SYSCTL=y
192  CONFIG_KCORE_ELF=y
193  # CONFIG_KCORE_AOUT is not set
194 -CONFIG_BINFMT_AOUT=y
195 +# CONFIG_BINFMT_AOUT is not set
196  CONFIG_BINFMT_ELF=y
197 +# CONFIG_BINFMT_ELF_AOUT is not set
198  # CONFIG_BINFMT_MISC is not set
199  CONFIG_ZORRO=y
200  # CONFIG_AMIGA_PCMCIA is not set
201 Index: linux-2.4.35.4/arch/mips/config-shared.in
202 ===================================================================
203 --- linux-2.4.35.4.orig/arch/mips/config-shared.in      2007-12-15 05:19:44.814974898 +0100
204 +++ linux-2.4.35.4/arch/mips/config-shared.in   2007-12-15 05:19:53.151449966 +0100
205 @@ -873,6 +873,9 @@
206  define_bool CONFIG_KCORE_AOUT n
207  define_bool CONFIG_BINFMT_AOUT n
208  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
209 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
210 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
211 +fi
212  dep_bool 'Kernel support for Linux/MIPS 32-bit binary compatibility' CONFIG_MIPS32_COMPAT $CONFIG_MIPS64
213  dep_bool 'Kernel support for o32 binaries' CONFIG_MIPS32_O32 $CONFIG_MIPS32_COMPAT
214  dep_bool 'Kernel support for n32 binaries' CONFIG_MIPS32_N32 $CONFIG_MIPS32_COMPAT
215 Index: linux-2.4.35.4/arch/mips/defconfig
216 ===================================================================
217 --- linux-2.4.35.4.orig/arch/mips/defconfig     2007-12-15 05:19:44.814974898 +0100
218 +++ linux-2.4.35.4/arch/mips/defconfig  2007-12-15 05:19:53.155450196 +0100
219 @@ -143,6 +143,7 @@
220  # CONFIG_KCORE_AOUT is not set
221  # CONFIG_BINFMT_AOUT is not set
222  CONFIG_BINFMT_ELF=y
223 +# CONFIG_BINFMT_ELF_AOUT is not set
224  # CONFIG_MIPS32_COMPAT is not set
225  # CONFIG_MIPS32_O32 is not set
226  # CONFIG_MIPS32_N32 is not set
227 Index: linux-2.4.35.4/arch/mips/kernel/irixelf.c
228 ===================================================================
229 --- linux-2.4.35.4.orig/arch/mips/kernel/irixelf.c      2007-12-15 05:19:41.626793215 +0100
230 +++ linux-2.4.35.4/arch/mips/kernel/irixelf.c   2007-12-15 05:19:53.155450196 +0100
231 @@ -8,6 +8,7 @@
232   * Copyright 1993, 1994: Eric Youngdale (ericy@cais.com).
233   */
234  
235 +#include <linux/config.h>
236  #include <linux/module.h>
237  
238  #include <linux/fs.h>
239 @@ -48,7 +49,12 @@
240  extern int dump_fpu (elf_fpregset_t *);
241  
242  static struct linux_binfmt irix_format = {
243 -       NULL, THIS_MODULE, load_irix_binary, load_irix_library,
244 +       NULL, THIS_MODULE, load_irix_binary,
245 +#ifdef CONFIG_BINFMT_ELF_AOUT
246 +       load_irix_library,
247 +#else
248 +       NULL,
249 +#endif
250         irix_core_dump, PAGE_SIZE
251  };
252  
253 @@ -794,6 +800,7 @@
254         goto out;
255  }
256  
257 +#ifdef CONFIG_BINFMT_ELF_AOUT
258  /* This is really simpleminded and specialized - we are loading an
259   * a.out library that is given an ELF header.
260   */
261 @@ -873,6 +880,7 @@
262         kfree(elf_phdata);
263         return 0;
264  }
265 +#endif
266  
267  /* Called through irix_syssgi() to map an elf image given an FD,
268   * a phdr ptr USER_PHDRP in userspace, and a count CNT telling how many
269 Index: linux-2.4.35.4/arch/mips64/defconfig
270 ===================================================================
271 --- linux-2.4.35.4.orig/arch/mips64/defconfig   2007-12-15 05:19:44.874978317 +0100
272 +++ linux-2.4.35.4/arch/mips64/defconfig        2007-12-15 05:19:53.155450196 +0100
273 @@ -147,6 +147,7 @@
274  # CONFIG_KCORE_AOUT is not set
275  # CONFIG_BINFMT_AOUT is not set
276  CONFIG_BINFMT_ELF=y
277 +# CONFIG_BINFMT_ELF_AOUT is not set
278  CONFIG_MIPS32_COMPAT=y
279  CONFIG_MIPS32_O32=y
280  # CONFIG_MIPS32_N32 is not set
281 Index: linux-2.4.35.4/arch/parisc/config.in
282 ===================================================================
283 --- linux-2.4.35.4.orig/arch/parisc/config.in   2007-12-15 05:19:41.638793897 +0100
284 +++ linux-2.4.35.4/arch/parisc/config.in        2007-12-15 05:19:53.155450196 +0100
285 @@ -89,6 +89,9 @@
286  bool 'Sysctl support' CONFIG_SYSCTL
287  define_bool CONFIG_KCORE_ELF y
288  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
289 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
290 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
291 +fi
292  tristate 'Kernel support for SOM binaries' CONFIG_BINFMT_SOM
293  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
294  
295 Index: linux-2.4.35.4/arch/parisc/defconfig
296 ===================================================================
297 --- linux-2.4.35.4.orig/arch/parisc/defconfig   2007-12-15 05:19:41.646794355 +0100
298 +++ linux-2.4.35.4/arch/parisc/defconfig        2007-12-15 05:19:53.159450422 +0100
299 @@ -56,6 +56,7 @@
300  CONFIG_SYSCTL=y
301  CONFIG_KCORE_ELF=y
302  CONFIG_BINFMT_ELF=y
303 +# CONFIG_BINFMT_ELF_AOUT is not set
304  CONFIG_BINFMT_SOM=y
305  # CONFIG_BINFMT_MISC is not set
306  # CONFIG_PM is not set
307 Index: linux-2.4.35.4/arch/ppc/config.in
308 ===================================================================
309 --- linux-2.4.35.4.orig/arch/ppc/config.in      2007-12-15 05:19:41.654794810 +0100
310 +++ linux-2.4.35.4/arch/ppc/config.in   2007-12-15 05:19:53.159450422 +0100
311 @@ -384,6 +384,7 @@
312  fi
313  define_bool CONFIG_BINFMT_ELF y
314  define_bool CONFIG_KERNEL_ELF y
315 +bool 'ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
316  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
317  bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER
318  
319 Index: linux-2.4.35.4/arch/ppc/defconfig
320 ===================================================================
321 --- linux-2.4.35.4.orig/arch/ppc/defconfig      2007-12-15 05:19:41.662795265 +0100
322 +++ linux-2.4.35.4/arch/ppc/defconfig   2007-12-15 05:19:53.159450422 +0100
323 @@ -59,7 +59,8 @@
324  CONFIG_KCORE_ELF=y
325  CONFIG_BINFMT_ELF=y
326  CONFIG_KERNEL_ELF=y
327 -CONFIG_BINFMT_MISC=m
328 +# CONFIG_BINFMT_ELF_AOUT is not set
329 +# CONFIG_BINFMT_MISC is not set
330  # CONFIG_OOM_KILLER is not set
331  CONFIG_PCI_NAMES=y
332  CONFIG_HOTPLUG=y
333 Index: linux-2.4.35.4/arch/ppc64/config.in
334 ===================================================================
335 --- linux-2.4.35.4.orig/arch/ppc64/config.in    2007-12-15 05:19:41.670795721 +0100
336 +++ linux-2.4.35.4/arch/ppc64/config.in 2007-12-15 05:19:53.159450422 +0100
337 @@ -82,6 +82,9 @@
338  fi
339  
340  bool 'Kernel support for 64 bit ELF binaries' CONFIG_BINFMT_ELF
341 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
342 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
343 +fi
344  
345  tristate 'Kernel support for 32 bit ELF binaries' CONFIG_BINFMT_ELF32
346  
347 Index: linux-2.4.35.4/arch/ppc64/defconfig
348 ===================================================================
349 --- linux-2.4.35.4.orig/arch/ppc64/defconfig    2007-12-15 05:19:41.678796176 +0100
350 +++ linux-2.4.35.4/arch/ppc64/defconfig 2007-12-15 05:19:53.163450651 +0100
351 @@ -56,6 +56,7 @@
352  # CONFIG_BSD_PROCESS_ACCT is not set
353  CONFIG_KCORE_ELF=y
354  CONFIG_BINFMT_ELF=y
355 +# CONFIG_BINFMT_ELF_AOUT is not set
356  CONFIG_BINFMT_ELF32=y
357  # CONFIG_BINFMT_MISC is not set
358  CONFIG_PCI_NAMES=y
359 Index: linux-2.4.35.4/arch/s390/config.in
360 ===================================================================
361 --- linux-2.4.35.4.orig/arch/s390/config.in     2007-12-15 05:19:41.686796634 +0100
362 +++ linux-2.4.35.4/arch/s390/config.in  2007-12-15 05:19:53.163450651 +0100
363 @@ -58,6 +58,9 @@
364  bool 'Sysctl support' CONFIG_SYSCTL
365  define_bool CONFIG_KCORE_ELF y
366  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
367 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
368 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
369 +fi
370  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
371  bool 'Show crashed user process info' CONFIG_PROCESS_DEBUG
372  bool 'Pseudo page fault support' CONFIG_PFAULT
373 Index: linux-2.4.35.4/arch/s390/defconfig
374 ===================================================================
375 --- linux-2.4.35.4.orig/arch/s390/defconfig     2007-12-15 05:19:41.694797090 +0100
376 +++ linux-2.4.35.4/arch/s390/defconfig  2007-12-15 05:19:53.163450651 +0100
377 @@ -46,6 +46,7 @@
378  CONFIG_SYSCTL=y
379  CONFIG_KCORE_ELF=y
380  CONFIG_BINFMT_ELF=y
381 +# CONFIG_BINFMT_ELF_AOUT is not set
382  # CONFIG_BINFMT_MISC is not set
383  # CONFIG_PROCESS_DEBUG is not set
384  CONFIG_PFAULT=y
385 Index: linux-2.4.35.4/arch/s390x/config.in
386 ===================================================================
387 --- linux-2.4.35.4.orig/arch/s390x/config.in    2007-12-15 05:19:41.698797316 +0100
388 +++ linux-2.4.35.4/arch/s390x/config.in 2007-12-15 05:19:53.163450651 +0100
389 @@ -61,6 +61,9 @@
390  bool 'Sysctl support' CONFIG_SYSCTL
391  define_bool CONFIG_KCORE_ELF y
392  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
393 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
394 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
395 +fi
396  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
397  bool 'Show crashed user process info' CONFIG_PROCESS_DEBUG
398  bool 'Pseudo page fault support' CONFIG_PFAULT
399 Index: linux-2.4.35.4/arch/s390x/defconfig
400 ===================================================================
401 --- linux-2.4.35.4.orig/arch/s390x/defconfig    2007-12-15 05:19:41.706797774 +0100
402 +++ linux-2.4.35.4/arch/s390x/defconfig 2007-12-15 05:19:53.163450651 +0100
403 @@ -47,6 +47,7 @@
404  CONFIG_SYSCTL=y
405  CONFIG_KCORE_ELF=y
406  CONFIG_BINFMT_ELF=y
407 +# CONFIG_BINFMT_ELF_AOUT is not set
408  # CONFIG_BINFMT_MISC is not set
409  # CONFIG_PROCESS_DEBUG is not set
410  CONFIG_PFAULT=y
411 Index: linux-2.4.35.4/arch/sh/config.in
412 ===================================================================
413 --- linux-2.4.35.4.orig/arch/sh/config.in       2007-12-15 05:19:41.714798229 +0100
414 +++ linux-2.4.35.4/arch/sh/config.in    2007-12-15 05:19:53.163450651 +0100
415 @@ -283,6 +283,9 @@
416          A.OUT          CONFIG_KCORE_AOUT" ELF
417  fi
418  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
419 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
420 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
421 +fi
422  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
423  
424  bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER
425 Index: linux-2.4.35.4/arch/sh/defconfig
426 ===================================================================
427 --- linux-2.4.35.4.orig/arch/sh/defconfig       2007-12-15 05:19:41.722798685 +0100
428 +++ linux-2.4.35.4/arch/sh/defconfig    2007-12-15 05:19:53.167450880 +0100
429 @@ -48,6 +48,7 @@
430  CONFIG_KCORE_ELF=y
431  # CONFIG_KCORE_AOUT is not set
432  CONFIG_BINFMT_ELF=y
433 +# CONFIG_BINFMT_ELF_AOUT is not set
434  # CONFIG_BINFMT_MISC is not set
435  
436  #
437 Index: linux-2.4.35.4/arch/sparc/config.in
438 ===================================================================
439 --- linux-2.4.35.4.orig/arch/sparc/config.in    2007-12-15 05:19:41.730799140 +0100
440 +++ linux-2.4.35.4/arch/sparc/config.in 2007-12-15 05:19:53.167450880 +0100
441 @@ -74,6 +74,9 @@
442  fi
443  tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
444  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
445 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
446 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
447 +fi
448  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
449  bool 'SunOS binary emulation' CONFIG_SUNOS_EMUL
450  bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER
451 Index: linux-2.4.35.4/arch/sparc/defconfig
452 ===================================================================
453 --- linux-2.4.35.4.orig/arch/sparc/defconfig    2007-12-15 05:19:41.738799596 +0100
454 +++ linux-2.4.35.4/arch/sparc/defconfig 2007-12-15 05:19:53.167450880 +0100
455 @@ -49,9 +49,10 @@
456  # CONFIG_BSD_PROCESS_ACCT is not set
457  CONFIG_SYSCTL=y
458  CONFIG_KCORE_ELF=y
459 -CONFIG_BINFMT_AOUT=y
460 +# CONFIG_BINFMT_AOUT is not set
461  CONFIG_BINFMT_ELF=y
462 -CONFIG_BINFMT_MISC=m
463 +# CONFIG_BINFMT_ELF_AOUT is not set
464 +# CONFIG_BINFMT_MISC is not set
465  CONFIG_SUNOS_EMUL=y
466  # CONFIG_OOM_KILLER is not set
467  
468 Index: linux-2.4.35.4/arch/sparc64/config.in
469 ===================================================================
470 --- linux-2.4.35.4.orig/arch/sparc64/config.in  2007-12-15 05:19:41.742799824 +0100
471 +++ linux-2.4.35.4/arch/sparc64/config.in       2007-12-15 05:19:53.167450880 +0100
472 @@ -79,6 +79,9 @@
473     bool '  Kernel support for 32-bit (ie. SunOS) a.out binaries' CONFIG_BINFMT_AOUT32
474  fi
475  bool 'Kernel support for 64-bit ELF binaries' CONFIG_BINFMT_ELF
476 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
477 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
478 +fi
479  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
480  bool 'SunOS binary emulation' CONFIG_SUNOS_EMUL
481  if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
482 Index: linux-2.4.35.4/arch/sparc64/defconfig
483 ===================================================================
484 --- linux-2.4.35.4.orig/arch/sparc64/defconfig  2007-12-15 05:19:41.750800280 +0100
485 +++ linux-2.4.35.4/arch/sparc64/defconfig       2007-12-15 05:19:53.167450880 +0100
486 @@ -70,7 +70,8 @@
487  CONFIG_BINFMT_ELF32=y
488  # CONFIG_BINFMT_AOUT32 is not set
489  CONFIG_BINFMT_ELF=y
490 -CONFIG_BINFMT_MISC=m
491 +# CONFIG_BINFMT_ELF_AOUT is not set
492 +# CONFIG_BINFMT_MISC is not set
493  # CONFIG_SUNOS_EMUL is not set
494  CONFIG_SOLARIS_EMUL=m
495  # CONFIG_OOM_KILLER is not set
496 Index: linux-2.4.35.4/arch/x86_64/config.in
497 ===================================================================
498 --- linux-2.4.35.4.orig/arch/x86_64/config.in   2007-12-15 05:19:41.758800735 +0100
499 +++ linux-2.4.35.4/arch/x86_64/config.in        2007-12-15 05:19:53.171451107 +0100
500 @@ -118,6 +118,9 @@
501  fi
502  #tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
503  bool 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
504 +if [ "$CONFIG_BINFMT_ELF" != "n" ]; then
505 +   bool '  ELF binaries with a.out format interpreters or a.out libraries' CONFIG_BINFMT_ELF_AOUT
506 +fi
507  tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
508  
509  bool 'Power Management support' CONFIG_PM
510 Index: linux-2.4.35.4/arch/x86_64/defconfig
511 ===================================================================
512 --- linux-2.4.35.4.orig/arch/x86_64/defconfig   2007-12-15 05:19:41.766801193 +0100
513 +++ linux-2.4.35.4/arch/x86_64/defconfig        2007-12-15 05:19:53.171451107 +0100
514 @@ -67,6 +67,7 @@
515  CONFIG_SYSCTL=y
516  CONFIG_KCORE_ELF=y
517  CONFIG_BINFMT_ELF=y
518 +# CONFIG_BINFMT_ELF_AOUT is not set
519  # CONFIG_BINFMT_MISC is not set
520  CONFIG_PM=y
521  CONFIG_IA32_EMULATION=y
522 Index: linux-2.4.35.4/fs/binfmt_elf.c
523 ===================================================================
524 --- linux-2.4.35.4.orig/fs/binfmt_elf.c 2007-12-15 05:19:45.006985841 +0100
525 +++ linux-2.4.35.4/fs/binfmt_elf.c      2007-12-15 05:19:53.171451107 +0100
526 @@ -9,6 +9,7 @@
527   * Copyright 1993, 1994: Eric Youngdale (ericy@cais.com).
528   */
529  
530 +#include <linux/config.h>
531  #include <linux/module.h>
532  
533  #include <linux/fs.h>
534 @@ -43,7 +44,9 @@
535  #include <linux/elf.h>
536  
537  static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs);
538 +#ifdef CONFIG_BINFMT_ELF_AOUT
539  static int load_elf_library(struct file*);
540 +#endif
541  static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int);
542  extern int dump_fpu (struct pt_regs *, elf_fpregset_t *);
543  extern void dump_thread(struct pt_regs *, struct user *);
544 @@ -74,7 +77,13 @@
545  #define ELF_PAGEALIGN(_v) (((_v) + ELF_MIN_ALIGN - 1) & ~(ELF_MIN_ALIGN - 1))
546  
547  static struct linux_binfmt elf_format = {
548 -       NULL, THIS_MODULE, load_elf_binary, load_elf_library, elf_core_dump, ELF_EXEC_PAGESIZE
549 +       NULL, THIS_MODULE, load_elf_binary,
550 +#ifdef CONFIG_BINFMT_ELF_AOUT
551 +       load_elf_library,
552 +#else
553 +       NULL,
554 +#endif
555 +       elf_core_dump, ELF_EXEC_PAGESIZE
556  };
557  
558  #define BAD_ADDR(x)    ((unsigned long)(x) >= TASK_SIZE)
559 @@ -404,6 +413,7 @@
560         return error;
561  }
562  
563 +#ifdef CONFIG_BINFMT_ELF_AOUT
564  static unsigned long load_aout_interp(struct exec * interp_ex,
565                              struct file * interpreter)
566  {
567 @@ -451,6 +461,7 @@
568  out:
569         return elf_entry;
570  }
571 +#endif
572  
573  /*
574   * These are the functions used to load ELF style executables and shared
575 @@ -458,7 +469,9 @@
576   */
577  
578  #define INTERPRETER_NONE 0
579 +#ifdef CONFIG_BINFMT_ELF_AOUT
580  #define INTERPRETER_AOUT 1
581 +#endif
582  #define INTERPRETER_ELF 2
583  
584  
585 @@ -482,7 +495,9 @@
586         struct elfhdr elf_ex;
587         struct elfhdr interp_elf_ex;
588         struct exec interp_ex;
589 +#ifdef CONFIG_BINFMT_ELF_AOUT
590         char passed_fileno[6];
591 +#endif
592         struct files_struct *files;
593         
594         /* Get the exec-header */
595 @@ -612,6 +627,7 @@
596  
597         /* Some simple consistency checks for the interpreter */
598         if (elf_interpreter) {
599 +#ifdef CONFIG_BINFMT_ELF_AOUT
600                 interpreter_type = INTERPRETER_ELF | INTERPRETER_AOUT;
601  
602                 /* Now figure out which format our binary is */
603 @@ -619,6 +635,9 @@
604                     (N_MAGIC(interp_ex) != ZMAGIC) &&
605                     (N_MAGIC(interp_ex) != QMAGIC))
606                         interpreter_type = INTERPRETER_ELF;
607 +#else
608 +               interpreter_type = INTERPRETER_ELF;
609 +#endif
610  
611                 if (memcmp(interp_elf_ex.e_ident, ELFMAG, SELFMAG) != 0)
612                         interpreter_type &= ~INTERPRETER_ELF;
613 @@ -627,6 +646,7 @@
614                 if (!interpreter_type)
615                         goto out_free_dentry;
616  
617 +#ifdef CONFIG_BINFMT_ELF_AOUT
618                 /* Make sure only one type was selected */
619                 if ((interpreter_type & INTERPRETER_ELF) &&
620                      interpreter_type != INTERPRETER_ELF) {
621 @@ -634,6 +654,7 @@
622                         // printk(KERN_WARNING "ELF: Ambiguous type, using ELF\n");
623                         interpreter_type = INTERPRETER_ELF;
624                 }
625 +#endif
626                 /* Verify the interpreter has a valid arch */
627                 if ((interpreter_type == INTERPRETER_ELF) &&
628                     !elf_check_arch(&interp_elf_ex))
629 @@ -651,6 +672,7 @@
630         /* OK, we are done with that, now set up the arg stuff,
631            and then start this sucker up */
632  
633 +#ifdef CONFIG_BINFMT_ELF_AOUT
634         if (!bprm->sh_bang) {
635                 char * passed_p;
636  
637 @@ -669,6 +691,7 @@
638                 /* Executables without an interpreter also need a personality  */
639                 SET_PERSONALITY(elf_ex, ibcs2_interpreter);
640         }
641 +#endif
642  
643         /* Flush all traces of the currently running executable */
644         retval = flush_old_exec(bprm);
645 @@ -817,10 +840,12 @@
646         padzero(elf_bss);
647  
648         if (elf_interpreter) {
649 +#ifdef CONFIG_BINFMT_ELF_AOUT
650                 if (interpreter_type == INTERPRETER_AOUT)
651                         elf_entry = load_aout_interp(&interp_ex,
652                                                      interpreter);
653                 else
654 +#endif
655                         elf_entry = load_elf_interp(&interp_elf_ex,
656                                                     interpreter,
657                                                     &interp_load_addr);
658 @@ -849,7 +874,9 @@
659  
660         kfree(elf_phdata);
661  
662 +#ifdef CONFIG_BINFMT_ELF_AOUT
663         if (interpreter_type != INTERPRETER_AOUT)
664 +#endif
665                 sys_close(elf_exec_fileno);
666  
667         set_binfmt(&elf_format);
668 @@ -863,10 +890,14 @@
669                         &elf_ex,
670                         load_addr, load_bias,
671                         interp_load_addr,
672 +#ifdef CONFIG_BINFMT_ELF_AOUT
673                         (interpreter_type == INTERPRETER_AOUT ? 0 : 1));
674         /* N.B. passed_fileno might not be initialized? */
675         if (interpreter_type == INTERPRETER_AOUT)
676                 current->mm->arg_start += strlen(passed_fileno) + 1;
677 +#else
678 +                       1);
679 +#endif
680         current->mm->start_brk = current->mm->brk = elf_brk;
681         current->mm->end_code = end_code;
682         current->mm->start_code = start_code;
683 @@ -937,9 +968,9 @@
684         goto out;
685  }
686  
687 +#ifdef CONFIG_BINFMT_ELF_AOUT
688  /* This is really simpleminded and specialized - we are loading an
689     a.out library that is given an ELF header. */
690 -
691  static int load_elf_library(struct file *file)
692  {
693         struct elf_phdr *elf_phdata;
694 @@ -1016,6 +1047,7 @@
695  out:
696         return error;
697  }
698 +#endif
699  
700  /*
701   * Note that some platforms still use traditional core dumps and not
702 Index: linux-2.4.35.4/fs/exec.c
703 ===================================================================
704 --- linux-2.4.35.4.orig/fs/exec.c       2007-12-15 05:19:41.786802333 +0100
705 +++ linux-2.4.35.4/fs/exec.c    2007-12-15 05:19:53.175451333 +0100
706 @@ -109,6 +109,7 @@
707   */
708  asmlinkage long sys_uselib(const char * library)
709  {
710 +#if defined(CONFIG_BINFMT_AOUT) || defined(CONFIG_BINFMT_ELF_AOUT)
711         struct file * file;
712         struct nameidata nd;
713         int error;
714 @@ -155,6 +156,9 @@
715  exit:
716         path_release(&nd);
717         goto out;
718 +#else
719 +       return -ENOSYS;
720 +#endif
721  }
722  
723  /*