blob: e1cb7c8ccbdb1cd1122043abdb9dc910b79936d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
general bugs:
- how to clean up sysroot nicely without having to rebuild the cross-compiler?
for now only removing and stowing a copy somewhere before building stage1
helps.
- pacman with a '--no-execute-hooks' option
- makepkg with an 'alternate root' option (which doens't collide with
pacman's options), avoids patching -r and --config into makepkg for
stage1
- shims and provides and depends don't work yet:
- binutils and glibc-shim
- same for gcc-libs: glibc and gcc-libs for gcc
- bsdtar: /home/cross/i486-root/packages/i486/linux-docs-4.15.1-2-i486.pkg.tar.xz: Not found in archive
bsdtar: /home/cross/i486-root/packages/i486/linux-headers-4.15.1-2-i486.pkg.tar.xz: Not found in archive
bsdtar: Error exit delayed from previous errors.
Built package linux.
- removing all pacman databases and recreating them with repo-add, also
removing all installed pacman packages seem a little bit paranoic. Find
out how to speed this up and do it properly.
- as soon as asp32 creates a combined PKGBUILD when exporting a package,
we can remove the git repo packages32 and the cat of the diff-PKGBUILD
in build_stage1_package.sh
- when uninstalling pacman in the chroot, you must rename pacman.pacsave
back to pacman.conf as it is used for building packages
- pacman has some issues with the sync databases (pacman -Syyu results
in):
debug: returning error 6 from _alpm_db_register_sync : wrong or NULL argument passed
error: could not register 'temp' database (wrong or NULL argument passed)
error: no usable package repositories configured.
installing and listing packages by hand works without problems.
debug: unregistering database 'local'
- some packages get build more than once in stage1 (linux-api-headers, pacman-mirrorlist)
- make a wrapper for sed in DESCR, which is actually able to detect whether
the patch was successful or not. Avoid hard to detect errors, when the
upstream PKGBUILD(s) change.
stage1 issues:
- stage1: cdrom installs keyrings without having a gpg binary
- 32 MB is not enough when installing packages => add a swap as first action!
- stage1 has no bootloader package (syslinux) to install
- do we really want to install stage1 via a CDROM?
- using the cross compiler for syslinux is most likely overkill
- some packages still build more than really needed:
- syslinux: builds docu with asciidoc and build EFI stuff from gnu-efi
- rename STAGE1 directories i486-root to i486-stage1-root and i486-build
to i486-build-stage1
- gdb uses cross-compiler source files for debugging:
Temporary breakpoint 1, 0x004005b0 in main ()
(gdb) list
1 /home/cross/.build/i486-unknown-linux-gnu/src/gcc/libgcc/libgcc2.c: No such file or directory.
- currently gcc has a PKGBUILD modified by hand instead of diff seds in DESCR
(the diff is very big and complex)
stage2 issues:
- make: recursive tarkets like all-recursive don't work, neither with cross-compiled
make nor with the recompiled make on the stage1 system.
=> rebuilding bash on the target works, but it's a workaround:
https://unix.stackexchange.com/questions/389022/make-unable-to-recurse-for-autoconf-like-projects/423448#423448
|