From 460378ef9a264f87d6c85ddd802d5837c4c14eef Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 17 Sep 2011 12:20:44 +0200 Subject: toolchain/cross-gnu: Update. --- toolchain/cross-gnu.mdwn | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'toolchain') diff --git a/toolchain/cross-gnu.mdwn b/toolchain/cross-gnu.mdwn index 62c55a04..280569ae 100644 --- a/toolchain/cross-gnu.mdwn +++ b/toolchain/cross-gnu.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2010, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -9,10 +9,12 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] +[[!tag stable_URL]] + [[Thomas_Schwinge|tschwinge]] has written a shell script for building a complete cross-build environment for GNU/Hurd systems. -Find it in the [[source_repositories/incubator]], *cross-gnu* branch. +Find it in the [[source_repositories/incubator]], *cross-gnu/master* branch. # Using @@ -31,6 +33,8 @@ differences, as well as towards pushing all patches upstream. ## Supported Versions of Source Packages +/!\ This is outdated. Contact [[tschwinge]]. + The following ones are known to work. Others may work as well, but no guarantee is given. Always the preferred version is listed first. @@ -117,6 +121,10 @@ guarantee is given. Always the preferred version is listed first. $ cd libpthread/ $ git checkout origin/tschwinge/Peter_Herbolzheimer + Prepare: + + $ ( cd libpthread/ && autoreconf -vi ) + * [[`src/glibc`|glibc]] * Git `tschwinge/Roger_Whittaker` branch @@ -147,9 +155,11 @@ guarantee is given. Always the preferred version is listed first. ## Preparation +The raw source code trees are about 1 GiB. + Unpack the tarballs if you downloaded any. -Create a directory where the cross build shall be rooted in and a `src` +Create a directory where the cross build shall be rooted in, and a `src` subdirectory in there. Then create symbolic links for every of the above packages: from `src/PACKAGE` to where you stored or unpacked it. If you don't intend to build several cross compilers or use the source trees otherwise, you @@ -162,11 +172,11 @@ Either make sure that `cross-gnu-env` and `cross-gnu` are found in `$PATH` (`~/bin/`, for example) or alternatively remember to use their full paths in the following. -The system you're running the script on (the *build* system) needs to have a -basic compiling environment installed, i.e., a C compiler with the basic -libraries and `make`. You might also need `flex` and `bison`. For building -recent version of GCC (4.3 onwards) -you'll need to have development packages of GMP and MPFR installed. +The system you're running the script on (the *build* system) needs to have +basic development tools installed, that is, a C compiler with libraries, +`make`, and several more packages. If anything is missing, the *cross-gnu* +build will abort, and you have to install the missing dependencies and resume +the *cross-gnu* build. ## Setting Up the Environment @@ -183,12 +193,14 @@ will be set by the script, `$PATH` will be adjusted, etc. See the their default values. `$ROOT` will be made an absolute path if it isn't already. -Later, you'll be able to do things like `../configure --host="$TARGET"` and the +Later, you'll be able to do things like `../configure --host="$TARGET"`, and the cross compiler will be found automatically. ## Creating the Cross Build Environment +This will need an additional 2 GiB. + After setting up the environemt, just run `cross-gnu` and watch the messages flow by. In the end you should see a message: *[...]/cross-gnu: Everything should be in place now.* -- cgit v1.2.3 From 80dd4a89c7060b81a85121f2fd27ed81a388200c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 18 Sep 2011 23:19:12 +0200 Subject: open_issues/glibc: Update. --- glibc/debugging/ld_so_console.mdwn | 3 ++ glibc/fork.mdwn | 5 +- open_issues/glibc.mdwn | 86 ++++++++++++++++++++++++++---- open_issues/mach-defpager_malloc_hook.mdwn | 14 +++++ toolchain/elfosabi_gnu.mdwn | 6 +++ 5 files changed, 102 insertions(+), 12 deletions(-) create mode 100644 open_issues/mach-defpager_malloc_hook.mdwn (limited to 'toolchain') diff --git a/glibc/debugging/ld_so_console.mdwn b/glibc/debugging/ld_so_console.mdwn index d36317b6..b3d1762f 100644 --- a/glibc/debugging/ld_so_console.mdwn +++ b/glibc/debugging/ld_so_console.mdwn @@ -15,3 +15,6 @@ example, there's a private `__libc_write`, which you should be able to use for writing to FD stderr -- but, at early `ld.so` startup, this isn't usable as `_hurd_init_dtable` is still all zeros, etc. To get you started, here is a simple [[dl-sysdep.c.patch]] to get access to the Mach console. + +Can this be integrated with the other debugging printf functions from +`elf/dl-misc.c` (`_dl_debug_vdprintf`) ([[!taglink open_issue_glibc]])? diff --git a/glibc/fork.mdwn b/glibc/fork.mdwn index 496dc743..9417106d 100644 --- a/glibc/fork.mdwn +++ b/glibc/fork.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -50,6 +50,9 @@ they have patches for software packages, to avoid using `fork` followed by __mach_port_allocate_name ([...]); if (err == KERN_NAME_EXISTS)` code ([[!taglink open_issue_glibc]]). + * Can we/why can't we use the concept of *inherited ports + array*s/`mach_ports_register` ([[!taglink open_issue_glibc]])? + ## Related diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index 5d4419d1..28b05685 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -27,8 +27,8 @@ Here's what's to be done for maintaining glibc. # Configuration -Last reviewed up to the [[Git mirror's 9f94d2ea71aaf73f964f8c1de5da85df94ef25bb -(2011-01-19) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's 5a31b2836d55bcc0c5b6f90f1e89245118e7f508 +(2011-06-07) sources|source_repositories/glibc]]. * t/dup3 @@ -36,6 +36,10 @@ Last reviewed up to the [[Git mirror's 9f94d2ea71aaf73f964f8c1de5da85df94ef25bb 22542dcc89805af8d9bd9209129259d2737372b5 (and then also ff3f3a789ba08b656dbaa3901091b6410bb883f8) are correct. + * 94b7cc3711b0b74c1d3ae18b9a2e019e51a8e0bf -- dup3 changes; relevant for + `t/dup3`: hidden def. ed690b2f24bbc4d9c541fc81a7c67e6dc5678a96 -- why + not for dup3, too? Because it is a syscall (that is always inlined)? + * t/init-first.c Have to revert 53b56b1101fc9bb4f295f23f54e7e19f8da8da16 to keep it working @@ -98,14 +102,6 @@ Last reviewed up to the [[Git mirror's 9f94d2ea71aaf73f964f8c1de5da85df94ef25bb checking for i386_set_gdt in mach_i386.defs... yes checking whether i586-pc-gnu-mig supports the retcode keyword... yes - * `make` has rebuilt `configure`, then: - - -checking whether ranlib is necessary... no - +checking whether ranlib is necessary... yes - - Very likely due to (improper) caching. But ranlib will be removed in a - later sourceware master commit. - * `elf/stackguard-macros.h` * Verify 77c84aeb81808c3109665949448dba59965c391e against @@ -130,7 +126,40 @@ Last reviewed up to the [[Git mirror's 9f94d2ea71aaf73f964f8c1de5da85df94ef25bb make[1]: Leaving directory `/media/boole-data/thomas/tmp/gnu-0/src/glibc' make: *** [all] Error 2 - * verify baseline changes, if we need any follow-up changes + * Missing interfaces, amongst many more. + + Many more are missing, some of which have been announced in `NEWS`, others + typically haven't (like new flags to existing functions). Typically, + porters will notice missing functionaly. But in case you're looking for + something to work on, here's a list. + + `AT_EMPTY_PATH`, `CLOCK_BOOTTIME`, `CLOCK_BOOTTIME_ALARM`, + `CLOCK_REALTIME_ALARM`, `O_PATH`, `RLIMIT_RTTIME`, `clock_adjtime`, + `fallocate`, `fallocate64`, `getcontext` (and `setcontext`), + `name_to_handle_at`, `open_by_handle_at`, `sendmmsg`, `setns`, + `sync_file_range` + + * `syncfs` + + We should be easily able to implement that one. + + * `futimesat`, `readlinkat`, `renameat` + + If we have all of 'em (check Linux kernel), `#define __ASSUME_ATFCTS`. + + * `bits/stat.h [__USE_ATFILE]`: `UTIME_NOW`, `UTIME_OMIT` + + * `io/fcntl.h [__USE_ATFILE]` + + Do we support `AT_FDCWD` et al.? + + * Building with GCC 4.5, 4.6, trunk will cause different kinds of faults. + + * Create `t/cleanup_kernel-features.h`. + + * Add tests from Linux kernel commit messages for `t/dup3` et al. + + * Verify baseline changes, if we need any follow-up changes: * a11ec63713ea3903c482dc907a108be404191a02 * 7e2b0c8562b35155820f87b5ff02a8b6850344cc @@ -187,6 +216,41 @@ Last reviewed up to the [[Git mirror's 9f94d2ea71aaf73f964f8c1de5da85df94ef25bb * 32465c3ea007065acd8ca8199f130cdf4068130d * 18ba70a559c52719fd94a713cc380514d9d19125 * 620a05296fe3380b7441ba7720e8b25c48a8c28c + * [low] e6c61494125126d2ba77e5d99f83887a2ed49783 -- `Fix memory leak in + TLS of loaded objects.` Do we need to replicate `nptl/allocatestack.c` + hunk? + * 6e04cbbe79f5965809fdbf1f28d7ae8b4af74d31 + + 1bfbe0d335d3fc44a492648b974a0db19975f6d8 -- `Fix + pathconf(_PC_BUF_SIZE).` + * 28377d1bf58625172a1734b92e835591d4d23a18 -- `Optimize fdopendir a bit.` + * 7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1 + + 6fb2dde3f1aa3a1419cb6c2dfa53dd1d506722a4 -- `Fix Linux getcwd for long + paths` + * [low] [[!taglink open_issue_libpthread]] + 5bdcc10322c488f53557440acf71623d8b313ab5 -- return `EAGAIN` instead of + `ENOMEM`. + * f574184a0e4b6ed69a5d9a3234543fba6d2a7367 -- `Fix sched_setscheduler + call in spawn implementation` + * 3b85df27870a47ed1db84e948e37a5a50a178a92 + + f50ef8f1efdd1f2b040acbb8324604f168e8832a -- sysconf + * 68a3f91fcad464c4737c1eaed4ae0bf539801fb2 -- `Fix reporting of invalid + timeouts in emulated pselect` + * ea389b12b3b65c4a7fa91fa76f8c99867eb37865 -- `strndup -> __strndup`; + strndupa? + * 7e4afad5bcf49e03c3b987399c6a8f66a9018660 -- `Nicer output for negative + error numbers in strerror_r`. Change needed for + `sysdeps/mach/_strerror.c`? + * 7ea72f99966a65a56aedba817ee2413ff9b1f23c + + adcd5c15d2a37794d021104160b425ff61f88219 -- `Always fill output buffer + in XPG strerror function`. Change needed for + `sysdeps/mach/xpg-strerror.c`? + * a91710475294c66d0005bdaae0919d36ef8ce3d2 -- sotruss. Does it work? + * b1ebd700c5295a449f8d114740f0d1fb6e6b2eb5 + + 80e2212d8e59933a1641f029ebd360526ff0e074 + + 4997db742946d08be4378cf91221f558f928bc73 -- `Don't document si_code + used for raise()`. Also for `bits/siginfo.h`? + * 01f16ab0a581838d44ad79e82c0c3e1691d8506e -- `Prevent loader from + loading itself` # Build diff --git a/open_issues/mach-defpager_malloc_hook.mdwn b/open_issues/mach-defpager_malloc_hook.mdwn new file mode 100644 index 00000000..2bbff75a --- /dev/null +++ b/open_issues/mach-defpager_malloc_hook.mdwn @@ -0,0 +1,14 @@ +[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!tag open_issue_glibc open_issue_hurd]] + +*malloc hooks* are used in `[hurd]/mach-defpager/kalloc.c`. But their use is +deprecated (glibc 7d17596c198f11fa85cbcf9587443f262e63b616). diff --git a/toolchain/elfosabi_gnu.mdwn b/toolchain/elfosabi_gnu.mdwn index bdc7e542..16b7d342 100644 --- a/toolchain/elfosabi_gnu.mdwn +++ b/toolchain/elfosabi_gnu.mdwn @@ -14,6 +14,12 @@ GNU/Hurd uses the `ELFOSABI_GNU` value for operating system/ABI identification. This is shared with GNU/Linux. +# Open Issues + +The [[/glibc]] patch is currently to be found in [[Savannah +glibc|source_repositories/glibc]] TopGit branch `t/elfosabi_gnu`. + + # History * [[!debbug 630180]], [[!debbug 632686]] -- cgit v1.2.3