Differences between revisions 33 and 34
Revision 33 as of 2015-09-25 17:33:00
Size: 4788
Editor: JosephMyers
Comment: fma patches committed.
Revision 34 as of 2015-10-04 17:21:11
Size: 5062
Editor: JosephMyers
Deletions are marked like this. Additions are marked like this.
Line 30: Line 30:

== Remove unnecessary soft-fp directory layers ==

Needed for: aarch64 alpha powerpc sh sparc.

sysdeps subdirectories {{{sysdeps/$arch/soft-fp}}} should be merged into {{{sysdeps/$arch}}}. See [[https://sourceware.org/ml/libc-alpha/2014-10/msg00369.html|message]].

Port Status

This page lists issues for which some ports need updating to take account of global changes to glibc or features initially implemented only for some ports. Each issue should list the ports for which it's relevant. When making a change needing port updates, please add details to this page. When fixing an issue for a port, please remove the port from the list of those to which the issue applies (and remove the issue from the page if it was the last port affected).

This is in addition to any port-specific issues that may be filed in Bugzilla, or that may show up through testsuite failures (it's generally a good idea to file such issues in Bugzilla, if they appear to indicate port bugs and you aren't immediately fixing them).

Generally, libm-test-ulps should be regenerated from scratch for each architecture for each release, but this is not mentioned on this page.

ABI test baselines

Needed for: Hurd.

ABI test baselines should be checked against binaries of as many past releases as possible rather than presuming no ABI bugs have crept in while the ABI was not being tested.


Needed for: Hurd.

bits/mman.h using mman-linux.h

Needed for: hppa.

For GNU/Linux, bits/mman.h should use bits/mman-linux.h to define architecture-independent values and only define things itself where architecture-dependent (if needed, make more definitions in bits/mman-linux.h support the values being architecture-specific). For hppa, doing this should fix the missing definitions of MADV_HUGEPAGE, MADV_NOHUGEPAGE, MADV_DONTDUMP, MADV_DODUMP and MADV_HWPOISON. This isn't straightforward though because hppa has custom values for more defines than other arches.


Needed for: alpha hppa ia64 m68k microblaze mips powerpc s390 sh sparc tile. See candidate MIPS patch (seems to require binutils changes).

Handle ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA in elf_machine_type_class and define DL_EXTERN_PROTECTED_DATA, or establish a reason why this is not required for the given architecture. Note that the tests elf/tst-protected1a and elf/tst-protected1b may or may not run at all depending on the results of a configure test on linker support, and binutils (and possibly GCC) fixes may be needed for them to pass as well as glibc fixes.

Remove unnecessary soft-fp directory layers

Needed for: aarch64 alpha powerpc sh sparc.

sysdeps subdirectories sysdeps/$arch/soft-fp should be merged into sysdeps/$arch. See message.

Syscall cancellation handling (NOT UPSTREAM)

Needed for: all architectures.

The new cancellation syscall wrapper for GLIBC will require port adjustments in the call function sequence:

1. Write a new syscall implementation at sysdeps/unix/sysv/linux/<arch>/syscall_cancel.S that basically do:

long int __syscall_cancel_arch (volatile unsigned int *cancelhandling,
  __syscall_arg_t nr, __syscall_arg_t arg1, __syscall_arg_t arg2, 
  __syscall_arg_t arg3, __syscall_arg_t arg4, __syscall_arg_t arg5,
  __syscall_arg_t arg6)
  if (*cancelhandling & CANCELED_BITMASK)

  result = INTERNAL_SYSCALL_NCS (nr, err, 6, a1, a2, a3, a4, a5, a6);
  if (INTERNAL_SYSCALL_ERROR_P (result, err))
    return -INTERNAL_SYSCALL_ERRNO (result, err);
  return result;

2. Adjust sysdeps/unix/sysv/linux/<arch>/sysdep-cancel.h to make cancellable syscalls to call syscall_cancel instead of *_{enable,disable}_asynccancel.

3. Create a function to get current IP address based on ucontext_t:

static inline
long int __pthread_get_ip (const struct ucontext *uc)
  // TODO: return current program counter based on uc.

4. Define both SYSCALL_CANCEL_ERROR(__val) and SYSCALL_CANCEL_ERRNO(__val) macros.

5. Make INTERNAL_SYSCALL_NCS accept 6 argument syscall.

Issues specific to hppa

The following issues are ones for which only hppa has not been updated.

  • sysdeps/unix/sysv/linux/hppa/bits/mman.h is missing MAP_STACK and MAP_HUGETLB.

  • An entry in libc's sysdeps/unix/sysv/linux/configure.in for hppa was removed on 2012-01-07 and a ports update may be needed. That entry may actually have been dead because of the arch_minimum_kernel setting in sysdeps/unix/sysv/linux/hppa/nptl/configure.in - but in that case, there's the question of whether the libc_cv_gcc_unwind_find_fde=yes that was in libc's file for hppa should go in the ports version (if that was a correct description of old libc binaries on hppa).

  • hppa pthread.h is out of date relative to the architecture-independent version (at least, missing the declarations of pthread_getattr_default_np and pthread_setattr_default_np).

None: PortStatus (last edited 2015-10-04 17:21:11 by JosephMyers)