[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/14: guix: copy-linux-headers: Extract procedure, add headers.
From: |
Jan Nieuwenhuizen |
Subject: |
07/14: guix: copy-linux-headers: Extract procedure, add headers. |
Date: |
Wed, 19 Sep 2018 01:04:04 -0400 (EDT) |
janneke pushed a commit to branch wip-bootstrap
in repository guix.
commit 5b8ecf71d506cc5e6f9f215f91b60c8df942a396
Author: Jan Nieuwenhuizen <address@hidden>
Date: Sun Sep 9 11:43:23 2018 +0200
guix: copy-linux-headers: Extract procedure, add headers.
* guix/build/make-bootstrap.scm (copy-linux-headers): New procedure; extract
from make-stripped-libc and add headers for Mes bootstrap.
(make-stripped-libc): Use it.
---
guix/build/make-bootstrap.scm | 72 +++++++++++++++++++++++++++++++------------
1 file changed, 53 insertions(+), 19 deletions(-)
diff --git a/guix/build/make-bootstrap.scm b/guix/build/make-bootstrap.scm
index 43b1362..0c7b4ac 100644
--- a/guix/build/make-bootstrap.scm
+++ b/guix/build/make-bootstrap.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017 Manolis Fragkiskos Ragkousis <address@hidden>
;;; Copyright © 2015 Ludovic Courtès <address@hidden>
+;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,7 +24,8 @@
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (guix build utils)
- #:export (make-stripped-libc))
+ #:export (copy-linux-headers
+ make-stripped-libc))
;; Commentary:
;;
@@ -31,6 +33,53 @@
;;
;; Code:
+(define (copy-linux-headers output kernel-headers)
+ "Copy to OUTPUT the subset of KERNEL-HEADERS that is needed when producing a
+bootstrap libc."
+
+ (let* ((incdir (string-append output "/include")))
+ (mkdir-p incdir)
+
+ ;; Copy some of the Linux-Libre headers that glibc headers
+ ;; refer to.
+ (mkdir (string-append incdir "/linux"))
+ (for-each (lambda (file)
+ (install-file (pk 'src (string-append kernel-headers
"/include/linux/" file))
+ (pk 'dest (string-append incdir "/linux"))))
+ '(
+ "a.out.h" ; for 2.2.5
+ "atalk.h" ; for 2.2.5
+ "errno.h"
+ "falloc.h"
+ "if_addr.h" ; for 2.16.0
+ "if_ether.h" ; for 2.2.5
+ "if_link.h" ; for 2.16.0
+ "ioctl.h"
+ "kernel.h"
+ "limits.h"
+ "neighbour.h" ; for 2.16.0
+ "netlink.h" ; for 2.16.0
+ "param.h"
+ "prctl.h" ; for 2.16.0
+ "posix_types.h"
+ "rtnetlink.h" ; for 2.16.0
+ "socket.h"
+ "stddef.h"
+ "swab.h" ; for 2.2.5
+ "sysctl.h"
+ "sysinfo.h" ; for 2.2.5
+ "types.h"
+ "version.h" ; for 2.2.5
+ ))
+
+ (copy-recursively (string-append kernel-headers "/include/asm")
+ (string-append incdir "/asm"))
+ (copy-recursively (string-append kernel-headers "/include/asm-generic")
+ (string-append incdir "/asm-generic"))
+ (copy-recursively (string-append kernel-headers "/include/linux/byteorder")
+ (string-append incdir "/linux/byteorder"))
+ #t))
+
(define (make-stripped-libc output libc kernel-headers)
"Copy to OUTPUT the subset of LIBC and KERNEL-HEADERS that is needed
when producing a bootstrap libc."
@@ -43,25 +92,10 @@ when producing a bootstrap libc."
(string-append incdir "/mach"))
#t))
- (define (copy-linux-headers output kernel-headers)
+ (define (copy-libc+linux-headers output kernel-headers)
(let* ((incdir (string-append output "/include")))
(copy-recursively (string-append libc "/include") incdir)
-
- ;; Copy some of the Linux-Libre headers that glibc headers
- ;; refer to.
- (mkdir (string-append incdir "/linux"))
- (for-each (lambda (file)
- (install-file (string-append kernel-headers
"/include/linux/" file)
- (string-append incdir "/linux")))
- '("limits.h" "errno.h" "socket.h" "kernel.h"
- "sysctl.h" "param.h" "ioctl.h" "types.h"
- "posix_types.h" "stddef.h" "falloc.h"))
-
- (copy-recursively (string-append kernel-headers "/include/asm")
- (string-append incdir "/asm"))
- (copy-recursively (string-append kernel-headers "/include/asm-generic")
- (string-append incdir "/asm-generic"))
- #t))
+ (copy-linux-headers output kernel-headers)))
(define %libc-object-files-rx "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|\
util).*\\.so(\\..*)?|lib(machuser|hurduser).so.*|(libc(rt|)|libpthread)\
@@ -80,6 +114,6 @@ _nonshared\\.a)$")
(if (directory-exists? (string-append kernel-headers "/include/mach"))
(copy-mach-headers output kernel-headers)
- (copy-linux-headers output kernel-headers)))
+ (copy-libc+linux-headers output kernel-headers)))
- 05/14: bootstrap: static-bash-for-glibc: Consider %current-system at run time., (continued)
- 05/14: bootstrap: static-bash-for-glibc: Consider %current-system at run time., Jan Nieuwenhuizen, 2018/09/19
- 11/14: bootstrap: bison-boot0: Do not use `ranlib -D'., Jan Nieuwenhuizen, 2018/09/19
- 04/14: bootstrap: Use thunk for inputs in package-with-explicit-inputs., Jan Nieuwenhuizen, 2018/09/19
- 13/14: bootstrap: Replace GNU toolchain seeds with Mes for i686-linux., Jan Nieuwenhuizen, 2018/09/19
- 01/14: bootstrap: %bootstrap-inputs: Wrap input lists into thunks., Jan Nieuwenhuizen, 2018/09/19
- 12/14: bootstrap: perl-boot0: Disable validate-runpath?., Jan Nieuwenhuizen, 2018/09/19
- 08/14: gnu: Add linux-libre-headers-bootstrap-tarball., Jan Nieuwenhuizen, 2018/09/19
- 02/14: bootstrap: %bootstrap-inputs+toolchain: Replace %bootstrap-inputs., Jan Nieuwenhuizen, 2018/09/19
- 06/14: guix: package-from-tarball: Allow PROGRAM-TO-TEST to be #f., Jan Nieuwenhuizen, 2018/09/19
- 09/14: bootstrap: Add Mes bootstrap seeds., Jan Nieuwenhuizen, 2018/09/19
- 07/14: guix: copy-linux-headers: Extract procedure, add headers.,
Jan Nieuwenhuizen <=
- 14/14: doc: Describe the Reduced Binary Seed bootstrap., Jan Nieuwenhuizen, 2018/09/19
- 10/14: bootstrap: Add Mes bootstrap., Jan Nieuwenhuizen, 2018/09/19