SPECS: glibc.spec - rel 0.4 - teach glibc about new syscalls at bu...

baggins baggins at pld-linux.org
Mon Feb 5 23:53:15 CET 2007


Author: baggins                      Date: Mon Feb  5 22:53:15 2007 GMT
Module: SPECS                         Tag: HEAD
---- Log message:
- rel 0.4
- teach glibc about new syscalls at build time without requiring latest
  kernel via include-override, the idea comes from Fedora and is _brilliant_

---- Files affected:
SPECS:
   glibc.spec (1.674 -> 1.675) 

---- Diffs:

================================================================
Index: SPECS/glibc.spec
diff -u SPECS/glibc.spec:1.674 SPECS/glibc.spec:1.675
--- SPECS/glibc.spec:1.674	Mon Feb  5 14:11:05 2007
+++ SPECS/glibc.spec	Mon Feb  5 23:53:09 2007
@@ -49,7 +49,7 @@
 Summary(uk):	GNU libc ×ĹŇÓŚ§ 2.3
 Name:		glibc
 Version:	2.5
-Release:	0.3
+Release:	0.4
 Epoch:		6
 License:	LGPL
 Group:		Libraries
@@ -867,6 +867,541 @@
 cd nptl/sysdeps/i386 && ln -s i686 i786 && cd -
 cd nptl/sysdeps/unix/sysv/linux/i386 && ln -s i686 i786 && cd -
 
+# Hack till glibc-kernheaders get updated, argh
+%define min_kernel_ver	%(echo %{min_kernel} | cut -f 1 -d .)
+%define min_kernel_patc %(echo %{min_kernel} | cut -f 2 -d .)
+%define min_kernel_subl	%(echo %{min_kernel} | cut -f 3 -d .)
+%define min_kernel_code	%(expr %{min_kernel_ver} \\* 65536 + %{min_kernel_patc} \\* 256 + %{min_kernel_subl})
+mkdir -p override_headers/linux
+cat > override_headers/linux/version.h <<EOF
+#define UTS_RELEASE "%{min_kernel}"
+#define LINUX_VERSION_CODE %{min_kernel_code}
+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+EOF
+mkdir -p override_headers/asm
+cat > override_headers/asm/unistd.h <<EOF
+#ifndef _HACK_ASM_UNISTD_H
+#include_next <asm/unistd.h>
+%ifarch alpha
+#ifndef __NR_stat64
+#define __NR_stat64			425
+#define __NR_lstat64			426
+#define __NR_fstat64			427
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open			432
+#define __NR_mq_unlink			433
+#define __NR_mq_timedsend		434
+#define __NR_mq_timedreceive		435
+#define __NR_mq_notify			436
+#define __NR_mq_getsetattr		437
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid			438
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init		444
+#define __NR_inotify_add_watch		445
+#define __NR_inotify_rm_watch		446
+#endif
+%endif
+%ifarch %{ix86}
+#ifndef __NR_mq_open
+#define __NR_mq_open 		277
+#define __NR_mq_unlink		(__NR_mq_open+1)
+#define __NR_mq_timedsend	(__NR_mq_open+2)
+#define __NR_mq_timedreceive	(__NR_mq_open+3)
+#define __NR_mq_notify		(__NR_mq_open+4)
+#define __NR_mq_getsetattr	(__NR_mq_open+5)
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		284
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	291
+#define __NR_inotify_add_watch	292
+#define __NR_inotify_rm_watch	293
+#endif
+#ifndef __NR_openat
+#define __NR_openat		295
+#define __NR_mkdirat		296
+#define __NR_mknodat		297
+#define __NR_fchownat		298
+#define __NR_futimesat		299
+#define __NR_unlinkat		301
+#define __NR_renameat		302
+#define __NR_linkat		303
+#define __NR_symlinkat		304
+#define __NR_readlinkat		305
+#define __NR_fchmodat		306
+#define __NR_faccessat		307
+#endif
+#ifndef __NR_fstatat64
+#define __NR_fstatat64		300
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		308
+#define __NR_ppoll		309
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		310
+#endif
+#ifndef __NR_set_robust_list
+#define __NR_set_robust_list	311
+#define __NR_get_robust_list	312
+#endif
+#ifndef __NR_splice
+#define __NR_splice		313
+#endif
+#ifndef __NR_sync_file_range
+#define __NR_sync_file_range	314
+#endif
+#ifndef __NR_tee
+#define __NR_tee		315
+#endif
+#ifndef __NR_vmsplice
+#define __NR_vmsplice		316
+#endif
+%endif
+%ifarch ia64
+#ifndef __NR_timer_create
+#define __NR_timer_create	1248
+#define __NR_timer_settime	1249
+#define __NR_timer_gettime	1250
+#define __NR_timer_getoverrun	1251
+#define __NR_timer_delete	1252
+#define __NR_clock_settime	1253
+#define __NR_clock_gettime	1254
+#define __NR_clock_getres	1255
+#define __NR_clock_nanosleep	1256
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open		1262
+#define __NR_mq_unlink		1263
+#define __NR_mq_timedsend	1264
+#define __NR_mq_timedreceive	1265
+#define __NR_mq_notify		1266
+#define __NR_mq_getsetattr	1267
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		1270
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	1277
+#define __NR_inotify_add_watch	1278
+#define __NR_inotify_rm_watch	1279
+#endif
+#ifndef __NR_openat
+#define __NR_openat		1281
+#define __NR_mkdirat		1282
+#define __NR_mknodat		1283
+#define __NR_fchownat		1284
+#define __NR_futimesat		1285
+#define __NR_newfstatat		1286
+#define __NR_unlinkat		1287
+#define __NR_renameat		1288
+#define __NR_linkat		1289
+#define __NR_symlinkat		1290
+#define __NR_readlinkat		1291
+#define __NR_fchmodat		1292
+#define __NR_faccessat		1293
+#endif
+#if 0
+#ifndef __NR_pselect6
+#define __NR_pselect6		1294
+#define __NR_ppoll		1295
+#endif
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		1296
+#endif
+#ifndef __NR_splice
+#define __NR_splice		1297
+#endif
+#ifndef __NR_set_robust_list
+#define __NR_set_robust_list	1298
+#define __NR_get_robust_list	1299
+#endif
+#ifndef __NR_sync_file_range
+#define __NR_sync_file_range	1300
+#endif
+#ifndef __NR_tee
+#define __NR_tee		1301
+#endif
+#ifndef __NR_vmsplice
+#define __NR_vmsplice		1302
+#endif
+%endif
+%ifarch ppc
+#ifndef __NR_utimes
+#define __NR_utimes		251
+#endif
+#ifndef __NR_statfs64
+#define __NR_statfs64		252
+#define __NR_fstatfs64		253
+#endif
+#ifndef __NR_fadvise64_64
+#define __NR_fadvise64_64	254
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open		262
+#define __NR_mq_unlink		263
+#define __NR_mq_timedsend	264
+#define __NR_mq_timedreceive	265
+#define __NR_mq_notify		266
+#define __NR_mq_getsetattr	267
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		272
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	275
+#define __NR_inotify_add_watch	276
+#define __NR_inotify_rm_watch	277
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		280
+#define __NR_ppoll		281
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		282
+#endif
+#ifndef __NR_splice
+#define __NR_splice		283
+#endif
+#ifndef __NR_tee
+#define __NR_tee		284
+#endif
+#ifndef __NR_vmsplice
+#define __NR_vmsplice		285
+#endif
+#ifndef __NR_openat
+#define __NR_openat		286
+#define __NR_mkdirat		287
+#define __NR_mknodat		288
+#define __NR_fchownat		289
+#define __NR_futimesat		290
+#define __NR_fstatat64		291
+#define __NR_unlinkat		292
+#define __NR_renameat		293
+#define __NR_linkat		294
+#define __NR_symlinkat		295
+#define __NR_readlinkat		296
+#define __NR_fchmodat		297
+#define __NR_faccessat		298
+#endif
+%endif
+%ifarch ppc64
+#ifndef __NR_utimes
+#define __NR_utimes		251
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open		262
+#define __NR_mq_unlink		263
+#define __NR_mq_timedsend	264
+#define __NR_mq_timedreceive	265
+#define __NR_mq_notify		266
+#define __NR_mq_getsetattr	267
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		272
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	275
+#define __NR_inotify_add_watch	276
+#define __NR_inotify_rm_watch	277
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		280
+#define __NR_ppoll		281
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		282
+#endif
+#ifndef __NR_splice
+#define __NR_splice		283
+#endif
+#ifndef __NR_tee
+#define __NR_tee		284
+#endif
+#ifndef __NR_vmsplice
+#define __NR_vmsplice		285
+#endif
+#ifndef __NR_openat
+#define __NR_openat		286
+#define __NR_mkdirat		287
+#define __NR_mknodat		288
+#define __NR_fchownat		289
+#define __NR_futimesat		290
+#define __NR_newfstatat		291
+#define __NR_unlinkat		292
+#define __NR_renameat		293
+#define __NR_linkat		294
+#define __NR_symlinkat		295
+#define __NR_readlinkat		296
+#define __NR_fchmodat		297
+#define __NR_faccessat		298
+#endif
+%endif
+%ifarch s390
+#ifndef __NR_timer_create
+#define __NR_timer_create	254
+#define __NR_timer_settime	(__NR_timer_create+1)
+#define __NR_timer_gettime	(__NR_timer_create+2)
+#define __NR_timer_getoverrun	(__NR_timer_create+3)
+#define __NR_timer_delete	(__NR_timer_create+4)
+#define __NR_clock_settime	(__NR_timer_create+5)
+#define __NR_clock_gettime	(__NR_timer_create+6)
+#define __NR_clock_getres	(__NR_timer_create+7)
+#define __NR_clock_nanosleep	(__NR_timer_create+8)
+#endif
+#ifndef __NR_fadvise64_64
+#define __NR_fadvise64_64	264
+#endif
+#ifndef __NR_statfs64
+#define __NR_statfs64		265
+#define __NR_fstatfs64		266
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open		271
+#define __NR_mq_unlink		272
+#define __NR_mq_timedsend	273
+#define __NR_mq_timedreceive	274
+#define __NR_mq_notify		275
+#define __NR_mq_getsetattr	276
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		281
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	284
+#define __NR_inotify_add_watch	285
+#define __NR_inotify_rm_watch	286
+#endif
+#ifndef __NR_openat
+#define __NR_openat		288
+#define __NR_mkdirat		289
+#define __NR_mknodat		290
+#define __NR_fchownat		291
+#define __NR_futimesat		292
+#define __NR_fstatat64		293
+#define __NR_unlinkat		294
+#define __NR_renameat		295
+#define __NR_linkat		296
+#define __NR_symlinkat		297
+#define __NR_readlinkat		298
+#define __NR_fchmodat		299
+#define __NR_faccessat		300
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		301
+#define __NR_ppoll		302
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		303
+#endif
+%endif
+%ifarch s390x
+#ifndef __NR_timer_create
+#define __NR_timer_create	254
+#define __NR_timer_settime	(__NR_timer_create+1)
+#define __NR_timer_gettime	(__NR_timer_create+2)
+#define __NR_timer_getoverrun	(__NR_timer_create+3)
+#define __NR_timer_delete	(__NR_timer_create+4)
+#define __NR_clock_settime	(__NR_timer_create+5)
+#define __NR_clock_gettime	(__NR_timer_create+6)
+#define __NR_clock_getres	(__NR_timer_create+7)
+#define __NR_clock_nanosleep	(__NR_timer_create+8)
+#endif
+#ifndef __NR_mq_open
+#define __NR_mq_open		271
+#define __NR_mq_unlink		272
+#define __NR_mq_timedsend	273
+#define __NR_mq_timedreceive	274
+#define __NR_mq_notify		275
+#define __NR_mq_getsetattr	276
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		281
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	284
+#define __NR_inotify_add_watch	285
+#define __NR_inotify_rm_watch	286
+#endif
+#ifndef __NR_openat
+#define __NR_openat		288
+#define __NR_mkdirat		289
+#define __NR_mknodat		290
+#define __NR_fchownat		291
+#define __NR_futimesat		292
+#define __NR_newfstatat		293
+#define __NR_unlinkat		294
+#define __NR_renameat		295
+#define __NR_linkat		296
+#define __NR_symlinkat		297
+#define __NR_readlinkat		298
+#define __NR_fchmodat		299
+#define __NR_faccessat		300
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		301
+#define __NR_ppoll		302
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		303
+#endif
+%endif
+%ifarch sparc sparcv9 sparc64
+#ifndef __NR_mq_open
+#define __NR_mq_open		273
+#define __NR_mq_unlink		274
+#define __NR_mq_timedsend	275
+#define __NR_mq_timedreceive	276
+#define __NR_mq_notify		277
+#define __NR_mq_getsetattr	278
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		279
+#endif
+#ifndef __NR_stat64
+#define __NR_fstat64		63
+#define __NR_lstat64		132
+#define __NR_stat64		139
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	151
+#define __NR_inotify_add_watch	152
+#define __NR_inotify_rm_watch	156
+#endif
+#ifndef __NR_openat
+#define __NR_openat		284
+#define __NR_mkdirat		285
+#define __NR_mknodat		286
+#define __NR_fchownat		287
+#define __NR_futimesat		288
+#define __NR_newfstatat		289
+#define __NR_unlinkat		290
+#define __NR_renameat		291
+#define __NR_linkat		292
+#define __NR_symlinkat		293
+#define __NR_readlinkat		294
+#define __NR_fchmodat		295
+#define __NR_faccessat		296
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		297
+#define __NR_ppoll		298
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		299
+#endif
+%endif
+%ifarch x86_64
+#ifndef __NR_mq_open
+#define __NR_mq_open		240
+#define __NR_mq_unlink		241
+#define __NR_mq_timedsend	242
+#define __NR_mq_timedreceive	243
+#define __NR_mq_notify		244
+#define __NR_mq_getsetattr	245
+#endif
+#ifndef __NR_waitid
+#define __NR_waitid		247
+#endif
+#ifndef __NR_inotify_init
+#define __NR_inotify_init	253
+#define __NR_inotify_add_watch	254
+#define __NR_inotify_rm_watch	255
+#endif
+#ifndef __NR_openat
+#define __NR_openat		257
+#define __NR_mkdirat		258
+#define __NR_mknodat		259
+#define __NR_fchownat		260
+#define __NR_futimesat		261
+#define __NR_newfstatat		262
+#define __NR_unlinkat		263
+#define __NR_renameat		264
+#define __NR_linkat		265
+#define __NR_symlinkat		266
+#define __NR_readlinkat		267
+#define __NR_fchmodat		268
+#define __NR_faccessat		269
+#endif
+#ifndef __NR_pselect6
+#define __NR_pselect6		270
+#define __NR_ppoll		271
+#endif
+#ifndef __NR_unshare
+#define __NR_unshare		272
+#endif
+#ifndef __NR_set_robust_list
+#define __NR_set_robust_list	273
+#define __NR_get_robust_list	274
+#endif
+#ifndef __NR_splice
+#define __NR_splice		275
+#endif
+#ifndef __NR_tee
+#define __NR_tee		276
+#endif
+#ifndef __NR_sync_file_range
+#define __NR_sync_file_range	277
+#endif
+#ifndef __NR_vmsplice
+#define __NR_vmsplice		278
+#endif
+%endif
+#endif
+EOF
+cat > override_headers/asm/errno.h <<EOF
+#ifndef _HACK_ASM_ERRNO_H
+#include_next <asm/errno.h>
+%ifarch alpha
+#ifndef ENOKEY
+#define ENOKEY		132
+#define EKEYEXPIRED	133
+#define EKEYREVOKED	134
+#define EKEYREJECTED	135
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD	136
+#define ENOTRECOVERABLE	137
+#endif
+%endif
+%ifarch %{ix86} ia64 ppc ppc64 s390 s390x x86_64
+#ifndef ENOKEY
+#define ENOKEY		126
+#define EKEYEXPIRED	127
+#define EKEYREVOKED	128
+#define EKEYREJECTED	129
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD	130
+#define ENOTRECOVERABLE	131
+#endif
+%endif
+%ifarch sparc sparcv9 sparc64
+#ifndef ENOKEY
+#define ENOKEY		128
+#define EKEYEXPIRED	129
+#define EKEYREVOKED	130
+#define EKEYREJECTED	131
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD	132
+#define ENOTRECOVERABLE	133
+#endif
+%endif
+#endif
+EOF
+
+# A lot of programs still misuse memcpy when they have to use
+# memmove. The memcpy implementation below is not tolerant at
+# all.
+rm -f sysdeps/alpha/alphaev6/memcpy.S
+
 %build
 cp -f /usr/share/automake/config.sub scripts
 %{__aclocal}
@@ -882,7 +1417,7 @@
 ../%configure \
 	--enable-kernel="%{min_kernel}" \
 	--enable-omitfp \
-	--with-headers=%{_includedir} \
+	--with-headers=`cd ..; pwd`/override_headers:%{_includedir} \
 	--with%{!?with_selinux:out}-selinux \
 	--with-tls \
 	--enable-add-ons=nptl,libidn \
@@ -1469,6 +2004,11 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.675  2007/02/05 22:53:09  baggins
+- rel 0.4
+- teach glibc about new syscalls at build time without requiring latest
+  kernel via include-override, the idea comes from Fedora and is _brilliant_
+
 Revision 1.674  2007/02/05 13:11:05  arekm
 - fix
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SPECS/glibc.spec?r1=1.674&r2=1.675&f=u



More information about the pld-cvs-commit mailing list