Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase to 3.5.4 #71

Merged
merged 775 commits into from
Sep 25, 2024
Merged

Rebase to 3.5.4 #71

merged 775 commits into from
Sep 25, 2024
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Dec 23, 2023

  1. Fix frv libgloss bits for c99/gcc-14\

    Same as we've seen elsewhere.  Add missing prototype and header include.
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    9f3e8ba View commit details
    Browse the repository at this point in the history
  2. Fix ft32 libgloss for c99/gcc-14

    Just one missing header for this libgloss port.
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    886eadb View commit details
    Browse the repository at this point in the history
  3. Fix c6x libgloss port for c99/gcc-14

    Just one missing header in this case...
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    f7d5bd9 View commit details
    Browse the repository at this point in the history
  4. Fix rl78 libgloss port for c99/gcc-14

    Needed a prototype for SYS_write and the prototype for write was incorrect
    (returns an int, not a char *).
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    a1a2144 View commit details
    Browse the repository at this point in the history
  5. Fix mcore libgloss port for c99/gcc-14

    Missing headers and prototypes, much like other ports.
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    73ba287 View commit details
    Browse the repository at this point in the history
  6. Fix most of m32r libgloss for c99/gcc-14

    Make implicit its explicit, add missing prototypes and header includes.  This
    does not fix m32r-stub.c which needs more than the trivial work that Jeff J has
    pre-approved.
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    5e79655 View commit details
    Browse the repository at this point in the history
  7. Fix epiphany libgloss for c99/gcc-14

    So in this case we mostly need to include an internal header
    (epiphany-syscalls.h).  In a few cases an explicit prototype is added.  We've
    also got a return with no value in a function with a non-void return type.
    Finally the asm_syscall interface expects a pointer as its first argument.  In
    a few cases we've actually got an int (file descriptor) which we just cast to a
    void *.
    
    It's slightly more than Jeff J's pre-approval, but I think still reasonable.
    JeffreyALaw committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    1df8f9f View commit details
    Browse the repository at this point in the history
  8. GCN: Implement '_exit' instead of 'exit'

    ... so that all of 'exit', '_exit', '_Exit' work.  'exit' thus becomes the
    standard 'newlib/libc/stdlib/exit.c'.  (Getting 'atexit' functional needs
    further work elsewhere.)
    
    See also commit 5841b2f
    "nvptx: Implement '_exit' instead of 'exit'".
    tschwinge committed Dec 23, 2023
    Configuration menu
    Copy the full SHA
    1a17761 View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2023

  1. newlib MMIX: Fix compilation warnings that recent gcc treats as errors

    Without this, when building with recent gcc, we'll see errors when
    compiling for --target mmix the first being:
      CC       libc/sys/mmixware/libc_a-chmod.o
    In file included from /x/newlib/libc/sys/mmixware/chmod.c:17:
    /x/newlib/libc/sys/mmixware/chmod.c: In function 'chmod':
    /x/newlib/libc/sys/mmixware/sys/syscall.h:139:6: error: implicit declaration \
    of function 'sprintf' [-Wimplicit-function-declaration]
      139 |      sprintf (buf, "UNIMPLEMENTED %s in %s\n", __FUNCTION__,
     __FILE__); \
    
    Other warnings also quelled.
    
    	* libc/sys/mmixware/sys/syscall.h: Include stdio.h, string.h
    	and unistd.h.
    	* libc/sys/mmixware/_exit.c: Call __unreachable after simulator exit.
    	* libc/sys/mmixware/chown.c (chown): Match declaration in unistd.h.
    	* libc/sys/mmixware/getpid.c (_getpid): Ditto.
    	* libc/sys/mmixware/kill.c (_kill): Ditto.
    	* libc/sys/mmixware/link.c (_link): Ditto.
    	* libc/sys/mmixware/read.c (_read): Ditto.
    	* libc/sys/mmixware/sbrk.c (_sbrk): Ditto.
    	* libc/sys/mmixware/unlink.c (_unlink): Ditto.
    	* libc/sys/mmixware/write.c (_write): Ditto.
    hpataxisdotcom authored and Hans-Peter Nilsson committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    ddb6149 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2023

  1. libgloss: xtensa: fix crt0.o rule

    Don't hardcode a custom rule for this -- reuse libobjs_a_SOURCES
    which was designed for this exact scenario.
    vapier committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    98230b7 View commit details
    Browse the repository at this point in the history
  2. libgloss: sparc: add missing m4 include

    Commit 8d75828 ("libgloss: merge
    sparc configure script up a level") missed including the sparc
    acinclude.m4 file which meant none of the sparc-specific vars were
    propagating to the sub-makefile.
    vapier committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    a84860f View commit details
    Browse the repository at this point in the history
  3. Fix another missing header file for mcore libgloss

    I guess I must have missed this when working through the trivial port specific
    changes.
    
    This adds an include of stdlib.h to get a prototype for exit().
    
    Pushed to the trunk.
    JeffreyALaw committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    7ef32a9 View commit details
    Browse the repository at this point in the history
  4. Fix various c99/gcc-14 issues in generic libgloss code

    Similar to what's been done in the ports, but this time in generic code.
    
    Add missing #includes to pick up prototypes.  Add prototypes for various
    internal functions where needed.  Fix signatures of various functions to match
    what's provided by the headers (read, sbrk, write, unlink).
    
    Nearly done with this effort ;-)
    
    Pushed to the trunk,
    JeffreyALaw committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    3d10b04 View commit details
    Browse the repository at this point in the history

Commits on Dec 31, 2023

  1. Minor improvement to H8 startup code

    Basically the startup code needs to clear memory from _edata to _end. In the
    past it's been done with a fairly naive copy loop.  This changes the code to
    just call memset and let memset figure out a sensible way to handle the
    operation given the size and alignment requirements.
    
    I don't have performance data on this.  I cobbled it together some time ago in
    response to seeing some of the GCC tests with larger .bss sections taking an
    insane amount of time to just get from _start to main.  With the fixes to the
    H8 decoder in the simulator it may not matter nearly as much anymore.
    
    This has been in my tester for months.  Naturally it does not cause any
    regressions in the H8 port.
    JeffreyALaw committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    ec119e1 View commit details
    Browse the repository at this point in the history
  2. Changes for newlib 4.4.0 snapshot

    - bump up version to 4.4.0
    jjohnstn committed Dec 31, 2023
    Configuration menu
    Copy the full SHA
    26f7004 View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2024

  1. newlib: libc: Improved the readability of strspn with minor optimization

    Signed-off-by: Xiao Zeng <zengxiao@eswincomputing.com>
    Xiao Zeng authored and jjohnstn committed Jan 2, 2024
    Configuration menu
    Copy the full SHA
    99f3898 View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2024

  1. Configuration menu
    Copy the full SHA
    a2ddc21 View commit details
    Browse the repository at this point in the history
  2. libgloss: moxie: delete unused/invalid assembly file

    This is a .c file, not assembly, and it's a duplicate (same content)
    as the existing sim-lseek.c.  Delete it since it's unused and doesn't
    actually compile.
    vapier committed Jan 3, 2024
    Configuration menu
    Copy the full SHA
    cd75406 View commit details
    Browse the repository at this point in the history
  3. libgloss: merge moxie into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A moxie-elf build shows installed objects & libs produce same code.
    vapier committed Jan 3, 2024
    Configuration menu
    Copy the full SHA
    50d6410 View commit details
    Browse the repository at this point in the history
  4. libgloss: merge v850 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A v850e-elf build shows installed objects & libs produce same code.
    vapier committed Jan 3, 2024
    Configuration menu
    Copy the full SHA
    6a3bc17 View commit details
    Browse the repository at this point in the history
  5. libgloss: i960: delete dead/broken code

    The i960 port has a lot of references to sim files that have never been
    included in the tree afaict, and thus has never worked.  Delete all the
    code to simplify.
    vapier committed Jan 3, 2024
    Configuration menu
    Copy the full SHA
    6879bfa View commit details
    Browse the repository at this point in the history
  6. libgloss: merge i960 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    I can't test this as current versions of binutils doesn't support i960.
    vapier committed Jan 3, 2024
    Configuration menu
    Copy the full SHA
    6bbeed7 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2024

  1. Cygwin: check remote drives for being SSDs as well

    This enables automatic sparse file support for remote SSDs.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    94d871e View commit details
    Browse the repository at this point in the history
  2. RISC-V: Initialize the jvt CSR

    Set symbol '__jvt_base$' as weak. So if the symbol is not set in the
    linker script, the address would be 0. We initialize jvt CSR only if
    the address is not 0.
    
    Also use csr number directly instead of using symbolic name to prevent the
    backward incompatible issue.
    
    psabi reference:
    https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/2d770815dc9a8b11e61ea1abd487cb25ee56ad5e/riscv-elf.adoc#table-jump-relaxation
    hau-hsu authored and github-cygwin committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    573458e View commit details
    Browse the repository at this point in the history
  3. fix strverscmp comparison of digit sequence with non-digits

    From: Rich Felker <dalias@aerifal.cx>
    Date: Mon, 7 Nov 2022 22:17:55 -0500
    
    the rule that longest digit sequence not beginning with a zero is
    greater only applies when both sequences being compared are
    non-degenerate. this is spelled out explicitly in the man page, which
    may be deemed authoritative for this nonstandard function: "If one or
    both of these is empty, then return what strcmp(3) would have
    returned..."
    
    we were wrongly treating any sequence of digits not beginning with a
    zero as greater than a non-digit in the other string.
    
    Signed-off-by: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
    BrianInglis authored and github-cygwin committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    9a863f7 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2024

  1. RISC-V: fix setting up std streams in init_semihosting()

    Currently init_semihosting() assumes the return value from _open()
    call as the file descriptor handle and that is incorrect.
    
    The semihost _open() call returns the fdtable index returned by the
    __add_fdentry() for the file opened.
    RamNalamothu authored and github-cygwin committed Jan 10, 2024
    Configuration menu
    Copy the full SHA
    c419bbb View commit details
    Browse the repository at this point in the history
  2. Cygwin: Fix a stray '\n' in cygcheck manpage

    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney committed Jan 10, 2024
    Configuration menu
    Copy the full SHA
    d11629d View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2024

  1. Cygwin: path.cc: fix comment starting with // but ending in */

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    5edd189 View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2024

  1. Configuration menu
    Copy the full SHA
    241b50a View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2024

  1. Cygwin: api docs: add missing fallocate

    Also add notes in terms of fallocate quirks.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 15, 2024
    Configuration menu
    Copy the full SHA
    4ecfb5b View commit details
    Browse the repository at this point in the history
  2. Cygwin: introduce close_range(2)

    This function closes or sets the close-on-exec flag for a specified
    range of file descriptors.  It is available on FreeBSD and Linux.
    
    Signed-off-by: Christian Franke <christian.franke@t-online.de>
    chrfranke authored and github-cygwin committed Jan 15, 2024
    Configuration menu
    Copy the full SHA
    d8c0fb0 View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2024

  1. Cygwin: Make 'ulimit -c' control writing a coredump

    Pre-format a command to be executed on a fatal error to run 'dumper'
    (using an absolute path).
    
    Factor out executing a pre-formatted command, so we can use that for
    invoking the JIT debugger in try_to_debug() (if error_start is present
    in the CYGWIN env var) and to invoke dumper when a fatal error occurs.
    
    On a fatal error, if the core file size limit is greater than 1MB,
    invoke dumper to write a core dump. Otherwise, if that limit is greater
    than 0, write a .stackdump file, as previously.
    
    Adjust and clarify the associated documentation.
    
    Also: Fix so that the error_start JIT debugger is now invoked, even when
    ulimit -c is zero.
    
    Also: Fix uses of console_printf() inside exec_prepared_command(). It's
    output is written via the Windows console device, so needs to use
    Windows-style line endings.
    
    Also: consistently return non-zero from try_to_debug() if we debugged.
    
    Future work: Truncate or remove the file written, if it exceeds the
    maximum size set by the ulimit.
    
    Future work: Using the words "fatal error" could probably be improved
    on. This means exiting on one of the "certain signals whose default
    action is to cause the process to terminate and produce a core dump
    file".
    jon-turney committed Jan 16, 2024
    Configuration menu
    Copy the full SHA
    9145737 View commit details
    Browse the repository at this point in the history
  2. Cygwin: Disable writing core dumps by default.

    Change the default core limit from unlimited to 0 (disabled)
    jon-turney committed Jan 16, 2024
    Configuration menu
    Copy the full SHA
    b7868e7 View commit details
    Browse the repository at this point in the history
  3. Cygwin: Define and use __WCOREFLAG

    Also fix a typo in description of exit status
    jon-turney committed Jan 16, 2024
    Configuration menu
    Copy the full SHA
    a83b93e View commit details
    Browse the repository at this point in the history
  4. Cygwin: Treat api_fatal() similarly to a core-dumping signal

    Provide the same debugging opportunities for api_fatal() as we do for a
    core-dumping signal:
    
    1) Break into any attached debugger
    2) Start JIT debugger (if configured) (keeping these under DEBUGGING doesn't seem helpful)
    3) Write a coredump (if rlim_core > 1MB)
    4) Write a stackdump (if that failed, or 0 < rlim_core <= 1MB)
    jon-turney committed Jan 16, 2024
    Configuration menu
    Copy the full SHA
    aa82248 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    07cccc7 View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2024

  1. Cygwin: copy doc changes from commit 241b50a to release notes

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    70b27ce View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2024

  1. Cygwin: replace all fgrep' with grep -F'

    Unfortunately fgrep is now deprecated in a very pushy way.
    Make sure to use grep -F instead all around, even in docs
    and comments/
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 18, 2024
    Configuration menu
    Copy the full SHA
    d45261f View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2024

  1. _fputwc_r: actually return result of __fputwc

    Compiling with -Wall uncovered a bug in _fputwc_r introduced in
    commit 0911946 ("stdio: split byte- and wide-char-oriented
    low-level output functions").  The underlying function __fputwc
    has been accidentally called without fetching its return value.
    So the return value of _fputwc_r (and thus fputwc) was undefined.
    
    Fixes: 0911946 ("stdio: split byte- and wide-char-oriented low-level output functions"
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    d13d922 View commit details
    Browse the repository at this point in the history
  2. ORIENT: avoid "expression has no effect" warning

    The warning "right-hand operand of comma expression has no effect
    [-Wunused-value]" crops up with -Wall in cases where ORIENT is called
    without checking or assigning its value.
    
    Explicitely void the expression in these cases to avoid the warning.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    29ec333 View commit details
    Browse the repository at this point in the history
  3. memccpy: fix pointer assignment

    The local vars dst and src are unsigned pointers, but two assignments
    cast their value to signed explicitely.  This results in the warning
    "pointer targets in assignment from ‘char *’ to ‘unsigned char *’
    differ in signedness [-Wpointer-sign]" in case of -Wall.
    
    Fix the cast.
    
    Fixes: d254189 ("2002-07-23  Jeff Johnston  <jjohnstn@redhat.com>")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    422c4f0 View commit details
    Browse the repository at this point in the history
  4. fputwc: call __fputwc directly

    Avoid another hop in the call stack.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    47f079b View commit details
    Browse the repository at this point in the history
  5. Cygwin: remove warnings from testsuite build

    - drop unused variable
    - remove deprectated usage of std::pointer_to_unary_function.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 19, 2024
    Configuration menu
    Copy the full SHA
    3f2d03a View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2024

  1. libgloss: check for objcopy & objdump properly

    A bunch of ports hack together these values rather than setting them
    up in the configure script for everyone.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    1adfc9a View commit details
    Browse the repository at this point in the history
  2. libgloss: add some objcopy/objdump build rules

    A bunch of ports have manual rules to generate disassembly, srec, and
    binary files from test programs.  Add top-level pattern rules so every
    test program gets this for free, and we don't have to duplicate it in
    every subdir.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    0714c63 View commit details
    Browse the repository at this point in the history
  3. libgloss: add per-file & per-dir flag support

    This logic is copied from what's used in newlib today.  This allows
    subdirs to easily define per-directory flags & per-file flags without
    having to setup unique automake rules for each one.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    58da258 View commit details
    Browse the repository at this point in the history
  4. libgloss: msp430: delete outdated/wrong code

    The #if 0 & comment imply this code doesn't exist and is never used,
    except there's another #if Lrun_fini_array section below which *does*
    define this function, which makes this code comment confusing.  This
    seems to be a hold over of the cleanup of the minrt code in the old
    commit 884b05b ("MSP430: Remove
    .init/.fini sections").
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    0ed55d0 View commit details
    Browse the repository at this point in the history
  5. libgloss: msp430: delete stub crt_init.o

    This object is created by compiling crt0.S with -DLinit, but there
    has never been an "#if Linit" check in crt0.S, so this has always
    produced a stub object file.  Drop compiling it entirely.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    2b0fd70 View commit details
    Browse the repository at this point in the history
  6. libgloss: msp430: split up crt0.S source

    The build system compiles crt0.S many times to produce independent
    object files by defining different -DLxxx symbols for each.  This
    complicates the build, and has led to some bugs in the source and
    build (see the previous cleanup commits in here).  The crt_bss.S
    file has also been duplicated with crt0.S leading to confusion as
    to which one is the "real" one.  The only reason to keep them in
    one file is to make management of the section numbers when calling
    START_CRT_FUNC a little easier, but that seems trivial to check
    with a quick grep across all the files.
    
    Considering how complicated the build is now, and the bugs we've
    had as a result, split the crt0.S file up into multiple source
    files so we don't have to compile it multiple times.  This will
    also simplify merging it into the top-level Makefile.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    f5c40e0 View commit details
    Browse the repository at this point in the history
  7. libgloss: msp430: delete custom .S.o rule

    This was added to specify -Wa,-gdwarf2 when compiling the assembly
    files.  Considering the size of these .S files, it seems unnecessary
    overkill and complicates the build system.  All but one of these
    compile down to 6 or fewer lines, and those hardly need extra debug
    for anyone who is poking msp430 assembly.  The 1 file that is larger
    than that (crt_move_highdata.S) is still <15 insns.
    
    This will also simplify merging it into the top-level Makefile.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    f904792 View commit details
    Browse the repository at this point in the history
  8. libgloss: merge msp430 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A msp430-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    787b83b View commit details
    Browse the repository at this point in the history
  9. libgloss: merge frv into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A frv-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    20dcee2 View commit details
    Browse the repository at this point in the history
  10. libgloss: merge i386 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A i386-elf build shows installed objects & libs produce same code other
    than a rename from cygmon-gmon.o & cygmon-salib.o to i386_libcygmon_a-*.o
    due to the use of custom CPPFLAGS in here.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    56211d0 View commit details
    Browse the repository at this point in the history
  11. libgloss: merge mn10300 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A mn10300-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    25f6d87 View commit details
    Browse the repository at this point in the history
  12. libgloss: merge mn10200 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    Untested, but follows the same pattern as mn10300, but simpler.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    41de4b0 View commit details
    Browse the repository at this point in the history
  13. libgloss: merge mcore into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A mcore-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    f4c8e16 View commit details
    Browse the repository at this point in the history
  14. libgloss: merge nds32 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A nds32le-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    695404d View commit details
    Browse the repository at this point in the history
  15. libgloss: merge xstormy16 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A xstormy16-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    3342c0e View commit details
    Browse the repository at this point in the history
  16. libgloss: merge rx into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A rx-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    1ed68b8 View commit details
    Browse the repository at this point in the history
  17. libgloss: merge rl78 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A rl78-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    4172a3c View commit details
    Browse the repository at this point in the history
  18. libgloss: merge m32r into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A m32r-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    af075ae View commit details
    Browse the repository at this point in the history
  19. libgloss: visium: fix sbrk search path

    The code was loading the common ../sbrk.c file rather than the visium
    specific sbrk.c due to VPATH setup.  Add an explicit rule for this one
    file so we make sure the correct one is used.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    5798c3b View commit details
    Browse the repository at this point in the history
  20. libgloss: merge visium into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A visium-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    770dd85 View commit details
    Browse the repository at this point in the history
  21. libgloss: xtensa: fix CPPFLAGS clobbering

    No sub-Makefile.inc file should ever set CPPFLAGS directly.  That is
    a global/common variable.  Instead, ports should set the per-target
    CPPFLAGS to include what they need.
    
    Further, per-target CPPFLAGS should respect $(AM_CPPFLAGS).
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    bf37122 View commit details
    Browse the repository at this point in the history
  22. libgloss: merge epiphany into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A epiphany-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    22257fc View commit details
    Browse the repository at this point in the history
  23. libgloss: merge or1k into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A or1k-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    8c5bb84 View commit details
    Browse the repository at this point in the history
  24. libgloss: merge fr30 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A fr30-elf build shows installed objects & libs produce same code.
    
    A lot of code seems like it hasn't been migrated, but that's because
    it's all disabled/unused (i.e. all the test & mon code).  It looks
    like a lot of copy & paste holdovers from the original port.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    ad17cf6 View commit details
    Browse the repository at this point in the history
  25. libgloss: ft32: delete unused/invalid assembly file

    This is a .c file, not assembly, and it's a duplicate (same content)
    as the existing sim-lseek.c.  Delete it since it's unused and doesn't
    actually compile.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    3ecd983 View commit details
    Browse the repository at this point in the history
  26. libgloss: merge ft32 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A ft32-elf build shows installed objects & libs produce same code.
    
    Mention of ft32-elf-common.ld is dropped as it has never existed
    in the tree, and has been an (ignored) error in the past.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    026422b View commit details
    Browse the repository at this point in the history
  27. libgloss: sparc: always install erc32 sim files

    These are already compiled for all sparc targets, so we might as well
    install them all the time so they can be used with the erc32 sim.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    50e0b04 View commit details
    Browse the repository at this point in the history
  28. libgloss: merge sparc into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A sparc-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    74674f2 View commit details
    Browse the repository at this point in the history
  29. libgloss: sparc_leon: workaround newer newlib pthread APIs

    Fix a compile error due to duplicate pthreads types:
    .../libgloss/sparc_leon/mutex.c:50:8: error: conflicting types for ‘pthread_mutex_t’; have ‘struct pthread_mutex’
       50 |      } pthread_mutex_t;
    In file included from .../newlib/libc/include/sys/types.h:221,
                     from .../libgloss/sparc_leon/mutex.c:26:
    .../newlib/libc/include/sys/_pthreadtypes.h:154:20: note: previous declaration of ‘pthread_mutex_t’ with type ‘pthread_mutex_t’ {aka ‘long unsigned int’}
      154 | typedef __uint32_t pthread_mutex_t;      /* identify a mutex */
    
    .../libgloss/sparc_leon/mutex.c:57:8: error: conflicting types for ‘pthread_mutexattr_t’; have ‘struct <anonymous>’
       57 |      } pthread_mutexattr_t;
    ../newlib/libc/include/sys/_pthreadtypes.h:169:3: note: previous declaration of ‘pthread_mutexattr_t’ with type ‘pthread_mutexattr_t’
      169 | } pthread_mutexattr_t;
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    9b35bf8 View commit details
    Browse the repository at this point in the history
  30. libgloss: merge sparc_leon into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A sparc-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    7ba23b6 View commit details
    Browse the repository at this point in the history
  31. libgloss: merge tic6x into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A tic6x-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    ae46a83 View commit details
    Browse the repository at this point in the history
  32. libgloss: microblaze: use port-specific sbrk

    The default search path uses the common sbrk.c over the microblaze
    one, so add a rule to force the microblaze variant instead.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    fecb0e5 View commit details
    Browse the repository at this point in the history
  33. libgloss: merge microblaze into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A microblaze-elf build shows installed objects & libs produce same code.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    2f0cd37 View commit details
    Browse the repository at this point in the history
  34. libgloss: xc16x: drop old stub port

    First off, afaict, xc16x support has never been merged into gcc.
    Upstream merge isn't strictly required for new ports, but it seems
    like people should merge eventually in some shape, and considering
    the libgloss port was merged in 2009, ~14 years seems like plenty
    of leeway.  Which is to say, no one else can seem to build this
    which makes updating & testing things very difficult.
    
    Ignoring that, from what I can tell, this port has only ever built
    and installed a crt0.o file.  It defines libeval.a & libcygmon.a
    targets, but nothing depends on them.  The SCRIPTS & BSP variables
    are always empty.  The original port merge define these in the
    configure script as substitutes, but never set the vars, so they
    were always replaced with nothing.
    
    I actually broke this build 2 years ago when merging the configure
    up a level in commit 30f2441
    ("libgloss: merge subdirs that have unique makefile_frags up a
    level").  I saw that it was exporting a bunch of vars in the
    configure script, but never set them, so I incorrectly assumed
    they weren't used.  Which means the Makefile has been setting them
    to invalid values like literal @bsp_list@ and @script_list@.
    
    Considering no one has complained, I have to assume no one cares
    about this port, and we can all stop wasting time on it.
    vapier committed Jan 20, 2024
    Configuration menu
    Copy the full SHA
    40b1b5c View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2024

  1. Configuration menu
    Copy the full SHA
    6f6427b View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2024

  1. libgloss: doc: fix dir info entry usage

    Wrapping the dir info with @ifnottex means it's included in all other
    outputs like html which makes no sense.  Switch to @direntry which is
    specific for this content and is automatically written to the output
    that makes sense, and omitted from the rest.
    vapier committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    fd4e96f View commit details
    Browse the repository at this point in the history
  2. libgloss: doc: unify duplicate copyright/license content

    Use @copying & @insertcopying directives to define the copyright &
    license block only once, and then inserted at the same places as it
    was before.
    vapier committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    5a8c23a View commit details
    Browse the repository at this point in the history
  3. newlib: docs: print the function index

    The generated function documentation makes sure to include entries for
    every function in the function index via @Findex, but then the manuals
    forget to actually print the index.
    vapier committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    613267a View commit details
    Browse the repository at this point in the history
  4. newlib: docs: add "Function " to every function node

    When creating a split manual with one-node-per-page, the main index.html
    ends up getting clobbered by the page for the index() function because
    it uses "@node index" which, for html, also creates an index.html page.
    To remedy this, add "Function " to every function node so now we output
    "Function-index.html" and avoid clobbering.  It also namespaces every
    other function and helps make sure we don't clobber anything else.
    
    Otherwise, there isn't really much rendering difference as @node text
    is mostly internal.  Node title text comes from @section instead.
    vapier committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    72b6105 View commit details
    Browse the repository at this point in the history
  5. Cygwin: seekdir: don't set errno

    Commit 3f3bd10 ("* Throughout, use __try/__except/__endtry blocks [...]")
    introduced setting EINVAL, marked as "Diagnosis".  The reason
    for this is lost in time and space, but looks very much like
    a debug helper which was supposed to be removed before release.
    It's rather pointless, so remove it.
    
    Fixes: 3f3bd10 ("* Throughout, use __try/__except/__endtry blocks [...]")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    02572ff View commit details
    Browse the repository at this point in the history
  6. libgloss: merge pru into top-level Makefile

    Avoid a recursive make to speed things up a bit.  This change was
    inspired by the recent similar patch for c6x:
    https://sourceware.org/pipermail/newlib/2023/020869.html
    
    While at it, fork crt0-minrt.S into a separate source file instead of
    relying on a predefined macro to generate two different object files.
    This improves clarity, simplifies the build rules, and would allow
    further optimization in crt0-minrt.S to be implemented more cleanly.
    
    Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
    Dimitar Dimitrov authored and github-cygwin committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    d5c4edc View commit details
    Browse the repository at this point in the history
  7. libgloss: pru: Trim crt0-minrt.o

    Strip a few more instructions from crt0-minrt.S:
      - Remove "halt" and rely on the infinite loop after main()'s return.
      - Remove main()'s argc and argv argument initialization.  Host loader
        does not set them, and typical firmware does not use them, either.
      - Remove the __dso_handle symbol.
    
    This should be safe because the default crt0.S is fully standards
    compliant.  Whereas crt0-minrt.S has been documented from the beginning
    to intentionally miss features in order to reduce firmware size, while
    still enabling typical PRU firmware to operate.
    
    Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
    Dimitar Dimitrov authored and github-cygwin committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    276dd12 View commit details
    Browse the repository at this point in the history
  8. configure.ac: configurable tooldir install path

    This patch is required to fix how the newlib headers are installed
    when using a sysroot install directory.
    
    The cross compiler expects headers to be in
    .../host/usr/arm-none-eabi/sysroot/usr/include/newlib.h
    by default newlib installed the headers into
    .../host/usr/arm-none-eabi/sysroot/usr/arm-none-eabi/include/newlib.h
    
    ${exec_prefix} provides the .../host/usr/arm-none-eabi/sysroot path
    ${target_noncanonical} provides an extra arm-none-eabi/ that must be removed.
    
    With this patch, users can specify the tooldir path that is needed.
    
    Signed-off-by: Neal Frager <neal.frager@amd.com>
    Co-developed-by: Chris Wardman <cjwfirmware@vxmdesign.com>
    nealfrager authored and github-cygwin committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    90d6966 View commit details
    Browse the repository at this point in the history
  9. libgloss: merge cr16 into top-level Makefile

    Avoid a recursive make to speed things up a bit.
    A cr16-elf build shows installed objects & libs produce same code.
    
    The test targets were dropped as they didn't actually work -- there
    is no test.o rule in here.
    vapier committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    752489c View commit details
    Browse the repository at this point in the history
  10. Cygwin: Don't terminate via dumper

    A process which is exiting due to a core dumping signal doesn't
    propagate the correct exist status after dumping core, because 'dumper'
    itself forcibly terminates the process.
    
    Use 'dumper -n' to avoid killing the dumped process, so we continue to
    the end of signal_exit(), to exit with the 128+signal exit status.
    
    Busy-wait in exec_prepared_command() in an attempt to reliably notice
    the dumper attaching, so we don't get stuck there.
    
    Also: document these important facts for custom uses of error_start.
    jon-turney committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    15140d6 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2024

  1. Cygwin: pthread: Fix handle leak in pthread_once.

    If pthread_once() is called with pthread_once_t initialized using
    PTREAD_ONCE_INIT, pthread_once does not release pthread_mutex used
    internally. This patch fixes that by calling pthread_mutex_destroy()
    in the thread which has called init_routine.
    
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jan 24, 2024
    Configuration menu
    Copy the full SHA
    2c5433e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4d9808d View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2024

  1. Configuration menu
    Copy the full SHA
    1c13ca6 View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2024

  1. Cygwin: redefine how to recognize forkee state

    So far the global variable in_forkee only indicated if the
    process is the child process during fork(2) itself.
    
    However, we need an indicator accessible from plain C code
    in newlib, allowing to check for a process being a forked
    process all the time, after fork(2) succeeded.
    
    Redefine bool in_forkee to int __in_forkee to allow exposing
    it to newlib.  Redefine how it indicates fork state (not
    forked, forking, forked).
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    1f68e88 View commit details
    Browse the repository at this point in the history
  2. Cygwin: fix arc4random after fork(2)

    After using fork(), arc4random does not reseed itself, which
    causes the results to become predictable.  Activate droppingfork-recognition
    
    Fixes: e0fc333 ("Delete Cygwin's arc4random in favor of new Newlib implementation")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    030a762 View commit details
    Browse the repository at this point in the history
  3. ssp: add support for _FORTIFY_SOURCE=3

    If specified, use __builtin_dynamic_object_size() instead of
    __builtin_object_size() if supported (GCC 12.0 or later).
    This enables buffer overflow checks if the buffer size is non-const
    but known during runtime.
    Use new macro __ssp_bos_known() instead of the (bos(p) != (size_t)-1)
    checks.  The latter is no longer a compile time constant in all cases.
    This avoids the generation of unused code.
    
    Signed-off-by: Christian Franke <christian.franke@t-online.de>
    chrfranke authored and github-cygwin committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    497e6eb View commit details
    Browse the repository at this point in the history
  4. Cygwin: machine/_arc4random.h: Fix copy/paste bug

    Remove a stray  __END_DECLS.  It didn't hurt in the only
    (plain C) file including this header, but still...
    
    Fixes: 030a762 ("Cygwin: fix arc4random after fork(2)")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    6252fd0 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2024

  1. Hide itoa, utoa, __itoa and __utoa in stdlib.h on Cygwin only

    These functions are non-standard and not exported by Cygwin.
    
    Signed-off-by: Christian Franke <christian.franke@t-online.de>
    chrfranke authored and github-cygwin committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    31f7cd1 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2024

  1. bump DLL version to 3.5.1

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    23737b0 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2024

  1. Cygwin: console: Fix exit code for non-cygwin process.

    If non-cygwin process is executed in console, the exit code is not
    set correctly. This is because the stub process for non-cygwin app
    crashes in fhandler_console::set_disable_master_thread() due to NULL
    pointer dereference. This bug was introduced by the commit:
    3721a75 ("Cygwin: console: Make the console accessible from
    other terminals."), that the pointer cons is accessed before fixing
    when it is NULL. This patch fixes the issue.
    
    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Reported-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    aa73e11 View commit details
    Browse the repository at this point in the history
  2. Cygwin: console: Avoid slipping past disable_master_thread check.

    If disable_master_thread flag is set between the code checking that
    flag not be set and the code acquiring input_mutex, input record is
    processed once after setting disable_master_thread flag. This patch
    prevents that.
    
    Fixes: d4aacd5 ("Cygwin: console: Add missing input_mutex guard.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    9bcfd06 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2024

  1. Configuration menu
    Copy the full SHA
    aa22a43 View commit details
    Browse the repository at this point in the history
  2. Cygwin: net: Make if_nametoindex, etc. consistent with if_nameindex.

    Currently, if_nametoindex() and if_indextoname() handle interface names
    such as "ethernet_32777", while if_nameindex() returns the names such
    as "{5AF7ACD0-D52E-4DFC-A4D0-54D3E6D6B2AC}". This patch unifies the
    interface names to the latter.
    
    Fixes: c356901 ("Rename if_indextoname to cygwin_if_indextoname (analag for if_nametoindex)")
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 3, 2024
    Configuration menu
    Copy the full SHA
    aa392df View commit details
    Browse the repository at this point in the history
  3. Cygwin: Do not show Error dialogs by default

    ...in a non-Cygwin child process.  Backported from MSYS2.
    Downstream commit message follows.
    
    In msys2/msys2-runtime#18, we discussed a change
    that would allow default Windows error handling of spawned processes to
    kick in (such as registered JIT debuggers). We even agreed that it would
    make sense to hide this functionality behind a flag, `winjitdebug`.
    
    However, when this got upstreamed as 21ec498 (cygwin: use
    CREATE_DEFAULT_ERROR_MODE in spawn, 2020-12-09), that flag was deemed
    unnecessary.
    
    But it would appear that it _is_ necessary: As reported in
    msys2/MSYS2-packages#2414 (comment)
    this new behavior is pretty disruptive e.g. in CI scenarios.
    
    So let's introduce that `winjitdebug` flag (settable via the environment
    variable `MSYS`) at long last.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    dscho authored and github-cygwin committed Feb 3, 2024
    Configuration menu
    Copy the full SHA
    6d6e1e3 View commit details
    Browse the repository at this point in the history
  4. Cygwin: reorder list of CYGWIN env var options alphabetically again

    This has been turned upside down for a short while.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 3, 2024
    Configuration menu
    Copy the full SHA
    d56fb66 View commit details
    Browse the repository at this point in the history
  5. Cygwin: document new winjitdebug option

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 3, 2024
    Configuration menu
    Copy the full SHA
    10e2210 View commit details
    Browse the repository at this point in the history
  6. Cygwin: fix typo in winjitdebug description

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 3, 2024
    Configuration menu
    Copy the full SHA
    70371d6 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2024

  1. Cygwin: pty: Fix handle leak in master process.

    If non-cygwin process is started in pty, closing from_master_nat
    pipe handle was missing in fhandler_pty_slave::input_transfer().
    This occured because the handle was duplicated but not closed.
    
    msys2/msys2-runtime#198
    
    Fixes: 29431fc ("Cygwin: pty: Inherit typeahead data between two input pipes.")
    Reported-by: Hakkin Lain
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    a6ac7b4 View commit details
    Browse the repository at this point in the history
  2. Cygwin: pty: Fix potential handle leak regarding CallNamedPipe().

    In pty master_thread, 6 handles are duplicated when CallNamedPipe()
    requests that. Though some of them are not used so should be closed,
    they were not. This causes handle leak potentially.
    
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    73cd80c View commit details
    Browse the repository at this point in the history
  3. Cygwin: console: Make VMIN and VTIME work.

    Previously, VMIN and VTIME did not work at all. This patch fixes that.
    
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    02f7f65 View commit details
    Browse the repository at this point in the history
  4. Cygwin: console: Fix a problem that minor ID is incorrect in ConEmu.

    Previously, minor device number of console was not assigned correctly
    in ConEmu environment. This is because console window of ConEmu is
    not enumerated by EnumWindows(). This patch fixes the issue.
    
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    0795afd View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2024

  1. Cygwin: pty: Make GNU screen and tmux work in ConEmu cygwin-connector.

    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    79db49a View commit details
    Browse the repository at this point in the history
  2. Cygwin: console: Unify EnumWindows() callback functions.

    Previously, three similar callback fuctions were used in console
    code. This patch unifies these functions to ease maintenance cost.
    
    Fixes: 8aad3a7edeb2 ("Cygwin: console: Fix a problem that minor ID is incorrect in ConEmu.")
    Suggested-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    309c199 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2024

  1. Cygwin: dumper: use void* in place of PTR

    The definition of PTR has been dropped from newer versions
    of ansidecl.h.
    
    Convert definition of print_section_name to use void * instead,
    as required by bfd_map_over_sections.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    (cherry picked from commit dace0bfa6c8c0ee8e3acc190212e1dd9e5a19677)
    github-cygwin authored and jon-turney committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    ffdc4e3 View commit details
    Browse the repository at this point in the history
  2. include/ansidecl.h: import from binutils-gdb

    Import include/ansidecl.h version from 2024-01-04,
    binutils-gdb commit fd67aa1129fd.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    (cherry picked from commit 10c8c1cf4f94ed42c59015d7e972269724c451bf)
    github-cygwin authored and jon-turney committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    a85f1c3 View commit details
    Browse the repository at this point in the history
  3. Cygwin: console: Fix a bug that cannot handle consoles more than 32.

    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    577673a View commit details
    Browse the repository at this point in the history
  4. Cygwin: console: Fix a bug that 64th console cannot be handled.

    Fixes: 930e553da8e9 ("Cygwin: console: Unify EnumWindows() callback functions.");
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    d8f6db2 View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2024

  1. Cygwin: pty: Fix failure to revert from nat-pipe in disable_pcon.

    Fixes: a903878 ("Cygwin: pty: Additional fix for transferring input at exit.");
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    384ea1f View commit details
    Browse the repository at this point in the history
  2. Cygwin: pty: Re-fix the last bug regarding nat-pipe.

    Fixes: f907b5f405a3 ("Cygwin: pty: Fix failure to revert from nat-pipe in disable_pcon.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    57b9425 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2024

  1. Cygwin: gettimeofday: allow tv NULL pointer

    Add a missing check for the struct timeval pointer being NULL.
    
    Reported-by: 109224573 <109224573@qq.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 20, 2024
    Configuration menu
    Copy the full SHA
    12b85be View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2024

  1. Cygwin: strptime: make sure to fail on invalid input digits

    conv_num returns NULL if the input is invalid, e. g., the
    numbers are out of range.  However, the code fails to test
    this in a lot of places.
    
    Rather than adding checks all over the place, rename conv_num
    to __conv_num and create a wrapper macro conv_num to perform
    the task of error checking.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 21, 2024
    Configuration menu
    Copy the full SHA
    f0ab27c View commit details
    Browse the repository at this point in the history
  2. Cygwin: strptime: fix am/pm handling

    The %p format specifier is handled immediately.  It requires
    that tm_hour is already set.  This falls flat in case the am/pm
    marker preceeds the time specification.  Locales with am/pm
    marker preceeding time spec by default exist (e. g. ko_KR).
    
    Also, the code expects that tm_hour might be set to an invalid
    value because the %p specifier is used in conjunction with %H.
    But this usage is invalid in itself and now catched as error
    condition after commit 343a2a558153 ("Cygwin: strptime: make
    sure to fail on invalid input digits").
    
    Change the %H/%I/%p handling according to GLibC, i. e.
    
    - fix tm_hour for pm only if the time value has been specified
      as 12 hour time %I, and
    
    - perform the fixup only after the entire input has been scanned.
      This decouples the fixup from the %p position relativ to %I.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 21, 2024
    Configuration menu
    Copy the full SHA
    4fe5b1d View commit details
    Browse the repository at this point in the history
  3. Cygwin: strptime: add release note

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 21, 2024
    Configuration menu
    Copy the full SHA
    83967aa View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2024

  1. Cygwin: newgrp: fix invalid usage of argv

    Fix an error message accessing argv[1] even after it has been
    potentially moved.  Print group name from group DB instead.
    
    Fixes: 8bd56ec ("Cygwin: newgrp: first full version")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    08df2e2 View commit details
    Browse the repository at this point in the history
  2. Cygwin: newgrp: only allow group from supplementary group list

    Windows only allows to set the primary group to a group already
    present in the TOKEN_GROUP list.  Cygwin OTOH fakes success at
    setgid() time, to allow a subsequent call to setuid() to do
    the actual account switching.  To have a sane behaviour in the
    command line tool, check group membership and disallow to switch
    to groups other than those already present in the user token.
    
    Fixes: 8bd56ec ("Cygwin: newgrp: first full version")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    32024ec View commit details
    Browse the repository at this point in the history
  3. Cygwin: add newgrp release notes

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    1f40799 View commit details
    Browse the repository at this point in the history
  4. Cygwin: Map ERROR_NO_SUCH_DEVICE and ERROR_MEDIA_CHANGED to ENODEV

    If a removable (USB) device is disconnected after opening its raw
    device, R/W attempts fail with ERROR_NO_SUCH_DEVICE(433).  If the
    raw device of a partition is used, ERROR_MEDIA_CHANGED(1110) is
    returned instead.  Both are mapped to ENODEV(19) because <errno.h>
    does not offer a value which better matches ERROR_MEDIA_CHANGED.
    
    Signed-off-by: Christian Franke <christian.franke@t-online.de>
    chrfranke authored and github-cygwin committed Feb 24, 2024
    Configuration menu
    Copy the full SHA
    ec5ef42 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2024

  1. Cygwin: passwd/group: drop Capability SIDs

    Capability SIDs (S-1-15-3-...) have been introduced with
    Windows 10 1909.  They don't resolve with LookupAccountSid.
    We don't need them and they don't map gracefully into out
    POSIX account namespace.  Also, add code to make sure to
    filter them out *iff* they become resolvable at one point.
    
    While at it, slightly reorder code for non-resolving SIDs
    by authority values.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    271f187 View commit details
    Browse the repository at this point in the history
  2. Cygwin: getgrent: fix local SAM enumeration on domain member machines

    Don't skip output of local SAM groups on domain member machines.
    They can have valid, user-defined groups in their SAM.  Just
    skip builtin groups if we're enumerating AD as well.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    50240f2 View commit details
    Browse the repository at this point in the history
  3. Cygwin: getgrent/getpwent: avoid local enumeration on DCs

    ...if we're supposed to enumerate the AD accounts anyway.  This
    avoids some useless duplication.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    69aba64 View commit details
    Browse the repository at this point in the history
  4. Cygwin: add release text for getgrent local SAM enumeration patch

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    a574428 View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2024

  1. bump DLL version to 3.5.2

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Feb 27, 2024
    Configuration menu
    Copy the full SHA
    b65153e View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2024

  1. Cygwin: console: Do not unmap shared console memory belonging to ctty.

    In the condition that console setup for CTTY and close run at the
    sametime, accessing shared console memory which is already unmapped
    may occur. With this patch, to avoid this race issue, shared console
    memory which belongs to contorolling terminal (CTTY) is kept mapped
    as before.
    Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255561.html
    
    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Reported-by: Kate Deplaix <kit-ty-kate@outlook.com>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    cf121e0 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. Cygwin: console: Fix a race issue between close() and open().

    The open() call for console sometimes fails if the console owner
    process is closing the console by close() at the same time. This
    is due to mismatch state of con.owner variable and attaching state
    to the console. With this patch, checking con.owner and attaching
    to con.owner sequence in open(), and resetting con.owner and freeing
    console sequence in close() are guarded by output_mutex to avoid
    such a race issue.
    Addresses: https://cygwin.com/pipermail/cygwin/2024-March/255575.html
    
    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Reported-by: Kate Deplaix <kit-ty-kate@outlook.com>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    fc5e952 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. Cygwin: pipe: Give up to use query_hdl for non-cygwin apps.

    Non-cygwin app may call ReadFile() for empty pipe, which makes
    NtQueryObject() for ObjectNameInformation block in fhandler_pipe::
    get_query_hdl_per_process. Therefore, do not to try to get query_hdl
    for non-cygwin apps.
    
    Addresses: msys2/msys2-runtime#202
    
    Fixes: b531d6b ("Cygwin: pipe: Introduce temporary query_hdl.")
    Reported-by: Alisa Sireneva, Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    f6be372 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2024

  1. Cygwin: try to avoid recalling offline files

    Chances are high that Cygwin recalls offline files from remote
    storage, even if the file is only accessed during stat(2) or
    readdir(3).
    
    To avoid this
    - make sure Cygwin is placeholder-aware,
    - open files in path_conv handling, as well as in stat(2)/readdir(3)
      scenarios with FILE_OPEN_NO_RECALL, and
    - during symlink checking or testing for executablility, don't even
      try to open the file if one of the OFFLINE attributes is set.
    
    Reported-by: Marcin Wisnicki <mwisnicki@gmail.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    c1cf14a View commit details
    Browse the repository at this point in the history
  2. Cygwin: get/set security descriptors using FILE_OPEN_NO_RECALL

    Add FILE_OPEN_NO_RECALL to NtOpenFile calls trying to fetch
    or write file security descriptors so as not to recall them
    from offline storage inadvertently.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    66138cb View commit details
    Browse the repository at this point in the history
  3. Cygwin: getgrent: don't skip SAM-only builtin-accounts

    Since commit 15e82eef3a40b ("Cygwin: getgrent: fix local SAM enumeration
    on domain member machines") we skip enumerating local BUILTIN accounts
    if we also enumerate AD.  However, there are two local accounts which
    are only available in local SAM, not in AD.  Don't skip enumerating
    those.
    
    Fixes: 15e82eef3a40b ("Cygwin: getgrent: fix local SAM enumeration on domain member machines")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    66f7dd9 View commit details
    Browse the repository at this point in the history
  4. Cygwin: add 3.5.2 release entries for latest commits

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    83afe30 View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2024

  1. Cygwin: pipe: Make sure to set read pipe non-blocking for cygwin apps.

    If pipe reader is a non-cygwin app first, and cygwin process reads
    the same pipe after that, the pipe has been set to bclocking mode
    for the cygwin app. However, the commit 9e4d308 assumes the
    pipe for cygwin process always is non-blocking mode. With this patch,
    the pipe mode is reset to non-blocking when cygwin app is started.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2024-March/255644.html
    Fixes: 9e4d308 ("Cygwin: pipe: Adopt FILE_SYNCHRONOUS_IO_NONALERT flag for read pipe.")
    Reported-by: wh <wh9692@protonmail.com>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Mar 12, 2024
    Configuration menu
    Copy the full SHA
    55431b4 View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2024

  1. Revert "Cygwin: glob: perform ignore_case_with_glob on input"

    This reverts commit a511474.
    
    Dumb thinko on my part.  What was supposed to be an optimization
    actually broke caseinsensitive globbing in that the entire input
    of globbed expressions were downcased.
    
    Drop the unused CCHAR() macro nevertheless.
    
    Fixes: a511474 ("Cygwin: glob: perform ignore_case_with_glob on input")
    Reported-by: Michael Goldshteyn <mgold10000@gmail.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 18, 2024
    Configuration menu
    Copy the full SHA
    70375b2 View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2024

  1. Cygwin: tzmap-from-unicode.org: drop support for Vista/2008

    Commit b794f2c ("Cygwin: drop support for systems not supporting
    RFC 4646 locales") erroneously changed tzmap.h manually.  Change
    the script accordingly.
    
    Fixes: b794f2c ("Cygwin: drop support for systems not supporting RFC 4646 locales")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    18bd5d3 View commit details
    Browse the repository at this point in the history
  2. Cygwin: utils: refresh tzmap.h

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    822eaf0 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2024

  1. bump DLL version to 3.5.3

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    c5882d8 View commit details
    Browse the repository at this point in the history
  2. Cygwin: fix tzmap-from-unicode.org

    The previous change introduced a missing end of comment
    
    Fixes: 60ea9c1c4b66 ("Cygwin: tzmap-from-unicode.org: drop support for Vista/2008")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    372eaba View commit details
    Browse the repository at this point in the history
  3. Cygwin: tzset(1): use GetDynamicTimeZoneInformation

    Use official GetDynamicTimeZoneInformation() function instead of
    scanning the registry for the timezone keyname.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    6c0240b View commit details
    Browse the repository at this point in the history
  4. Cygwin: tzmap-from-unicode.org: drop "E. Europe Standard Time" default

    E. Europe Standard Time is available in the unicode.org windowsZones.xml
    file, so we can drop the default handling.
    
    Fix a few comments.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    bd11b2d View commit details
    Browse the repository at this point in the history
  5. Cygwin: utils: refresh tzmap.h

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    d8b21b8 View commit details
    Browse the repository at this point in the history
  6. bump DLL version to 3.5.4

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    774d20b View commit details
    Browse the repository at this point in the history
  7. Cygwin: add a fake 3.5.3 release file

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b896891 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2024

  1. Cygwin: FILE_OPEN_NO_RECALL is incompatible with FILE_DIRECTORY_FILE

    If FILE_DIRECTORY_FILE is given, FILE_OPEN_NO_RECALL is not allowed,
    otherwise NtCreateFile returns STATUS_INVALID_PARAMETER.
    
    Drop FILE_OPEN_NO_RECALL where FILE_DIRECTORY_FILE is specified.
    
    Fixes: f6b56abec186 ("Cygwin: try to avoid recalling offline files")
    Reported-by: Bruce Jerrick <bmj001@gmail.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 4, 2024
    Configuration menu
    Copy the full SHA
    e00cb12 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Cygwin: globify: read full 32 bit character

    While commit 0321fb5 ("Cygwin: glob: convert wchar_t to wint_t")
    switched the entire glob mechanism from wchar_t to wint_t, the globify
    function calling glob on a DOS command line did not catch up and only
    checked for the next character constituting a 16 bit wchar_t. This
    broke reading surrogate pairs from incoming DOS command lines if the
    string had to go through glob(3).
    
    Check for an entire 32 bit unicode char instead.
    
    Fixes: 0321fb5 ("Cygwin: glob: convert wchar_t to wint_t")
    Reported-by: David Allsopp <david@tarides.com>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    14216d5 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2024

  1. Cygwin: mixer: Fix volume control for no WAVECAPS_LRVOLUME device

    Currently, if the device does not have capability WAVECAPS_LRVOLUME,
    the volume control does not work properly. This patch fixes that.
    
    Fixes: 2a4af36 ("Cygwin: Implement sound mixer device.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jun 1, 2024
    Configuration menu
    Copy the full SHA
    e567e9f View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2024

  1. Cygwin: pthread: Fix a race issue introduced by the commit 2c5433e

    To avoid race issues, pthread::once() uses pthread_mutex. This caused
    the handle leak which was fixed by the commit 2c5433e. However,
    this fix introduced another race issue, i.e., the mutex may be used
    after it is destroyed. This patch fixes the issue. Special thanks to
    Bruno Haible for discussing how to fix this.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2024-May/255987.html
    Reported-by: Bruno Haible <bruno@clisp.org>
    Fixes: 2c5433e ("Cygwin: pthread: Fix handle leak in pthread_once.")
    Reviewed-by: Ken Brown <kbrown@cornell.edu>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jun 2, 2024
    Configuration menu
    Copy the full SHA
    d49c6a7 View commit details
    Browse the repository at this point in the history
  2. Cygwin: disable high-entropy VA for ldh

    If ldd is run against a DLL which links to the Cygwin DLL, ldh will end
    up loading the Cygwin DLL dynamically, much like cygcheck or strace.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2024-May/255991.html
    Fixes: 60675f1 ("Cygwin: decouple shared mem regions from Cygwin DLL")
    Reviewed-by: Ken Brown <kbrown@cornell.edu>, Takashi Yano <takashi.yano@nifty.ne.jp>
    Signed-off-by: Jeremy Drake <cygwin@jdrake.com>
    Jeremy Drake via Cygwin-patches authored and tyan0 committed Jun 2, 2024
    Configuration menu
    Copy the full SHA
    84dff09 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2024

  1. Cygwin: suppress a warning generated with w32api >= 12.0.0

    w32api 12.0.0 adds the returns_twice attribute to RtlCaptureContext().
    There's some data-flow interaction with using it inside a while loop
    which causes a maybe-uninitialized warning.
    
    ../../../../winsup/cygwin/exceptions.cc: In member function 'int _cygtls::call_signal_handler()':
    ../../../../winsup/cygwin/exceptions.cc:1720:33: error: '<anonymous>' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    
    (cherry picked from commit 7e3c833592b282355a57dd34459b152e4e078d19)
    jon-turney committed Jun 16, 2024
    Configuration menu
    Copy the full SHA
    d1670f1 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2024

  1. Cygwin: dsp: Fix incorrect openflags when opening multiple /dev/dsp

    Previously, the following steps failed with error:
      1) Open /dev/dsp with O_RDONLY
      2) Open /dev/dsp with O_WRONLY
      3) Issue SNDCTL_DSP_GETOSPACE ioctl() for 2)
    This is because IS_WRITE() returns false for 2) due to incorrect
    openflags handling in archetype instance. This patch fixes the
    issue by adding open_setup() to fhandler_dev_dsp to set openflags
    correctly for each instance.
    
    Fixes: 92ddb74 ("* fhandler_dsp.cc (fhandler_dev_dsp::open): Remove archetype handling.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jun 28, 2024
    Configuration menu
    Copy the full SHA
    40f751e View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2024

  1. Cygwin: console: Add error handling for thread_sync_event

    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jun 29, 2024
    Configuration menu
    Copy the full SHA
    936c062 View commit details
    Browse the repository at this point in the history
  2. Cygwin: console: Add debug print on thread_sync_event creation error

    Fixes: 55baaac2ef5f ("Cygwin: console: Add error handling for thread_sync_event")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jun 29, 2024
    Configuration menu
    Copy the full SHA
    a92abb5 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2024

  1. Cygwin: pty: Avoid client deadlock when pty master stops to read.

    Previsouly, the following commands hangs:
      mintty -e timeout 1 dash -c 'yes aaaaaaaaaaaaaaaaaaaaaaaaa | cat'
    
    The mechanism is as follows.
    
    When the child process (timeout) is terminated, mintty seems to stop
    reading pty master even if yes or cat still alive.
    
    If the the pipe used to transfer output from pty slave to pty master
    is full due to lack of master reader, WriteFile() to the pipe is
    blocked. WriteFile() cannot be canceled by cygwin signal, therefore,
    pty slave hangs.
    
    This patch avoids hanging by checking pipe space before calling
    WriteFile() and prevents writing data more than space.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2024-June/256178.html
    Reported-by: jojelino <jojelino@gmail.com>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jul 1, 2024
    Configuration menu
    Copy the full SHA
    49018bf View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2024

  1. Cygwin: console: Fix conflict on shared names between sessions.

    Previously, shared names in the console were created using get_minor().
    However, get_minor() was not unique to the console across sessions.
    This is because EnumWindows(), which is used to look for console windows,
    cannot enumerate windows across sessions. This causes conflict on the
    shared names between sessions (e.g. sessions of different users,
    different services, a service and a user session, etc.).
    
    With this patch, GetConsoleWindow() is used instead of get_minor().
    GetConsoleWindow() has been used for the name of shared memory, which
    should be unique to each console.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2024-April/255893.html
    Fixes: ff4440f ("Cygwin: console: Introduce new thread which handles input signal.");
    Reported-by: Johannes Khoshnazar-Thoma <johannes@johannesthoma.com>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jul 3, 2024
    Configuration menu
    Copy the full SHA
    a8300a6 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2024

  1. Cygwin: console: Fixes an issue that tmux can not run on the console.

    After the commit c77a5689f7bd, tmux can not run on the console.
    This patch replaces the countermeasure for the race issue between
    console setup and close with another mechanism using a mutex.
    
    Fixes: c77a5689f7bd ("Cygwin: console: Do not unmap shared console memory belonging to ctty.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    186ee9b View commit details
    Browse the repository at this point in the history
  2. Cygwin: console: Bug fix for the last console code change

    The commit baf2764dca43 has a serious bug that shared_info_state is
    common for all console devices despite it should be individual for
    each console device. This patch fixes that.
    
    Fixes: baf2764dca43 ("Cygwin: console: Fixes an issue that tmux can not run on the console.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    tyan0 committed Jul 6, 2024
    Configuration menu
    Copy the full SHA
    ec71ae7 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Cygwin: console: Fix race issue on allocating console simultaneously.

    Previously, if two or more processes request to allocate a console at
    the same time, the same device number could be accidentally allocated.
    This patch fixes the issue by creating a named mutex (input_mutex) and
    checking if GetLastError() is ERROR_ALREADY_EXIST or not to ensure
    the unit number will be allocated in an atomic way. Thanks to this,
    EnumWindow() is not necessary anymore to scan console units.
    
    This also makes minor device numbers unique and console devices visible
    across sessions. This disallows duplicated device number for different
    sessions, so the MAX_CONS_DEV has been increased from 64 to 128.
    
    Additionally, the console allocation and scanning will be faster as
    a side effect of eliminating EnumWindows().
    
    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    (cherry picked from commit 10477d95ec401213d5bded5ae3600ab0d2d5ed94)
    tyan0 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    cc9dcdb View commit details
    Browse the repository at this point in the history
  2. Cygwin: console: Fix for GNU screen/tmux in ConEmu

    If the master process of GNU screen or tmux is started in ConEmu
    and ConEmu is closed, reattaching to the GNU screen/tmux in another
    console will not work correctly. This is because the ConEmu master
    process was already closed even though some console APIs are hooked
    by ConEmuHk64.dll to communicate with ConEmu master process. With
    this patch, to make them unhooked, DllMain() of ConEmuHk64.dll is
    called with DLL_PROCESS_DETACH.
    
    Fixes: 3721a75 ("Cygwin: console: Make the console accessible from other terminals.")
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    (cherry picked from commit ac7c0e23d85a638e6f930aa9a0582812e886a688)
    tyan0 committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    ce3889a View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2024

  1. stdatomic: make atomics compatible with GCC-14

    https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631525.html
    brings c_atomic and cxx_atomic definitions into GCC.
    This patch makes atomics type detection correct for GCC.
    
    freebsd/freebsd-src@680f40f
    Lapshin authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    a6ffd83 View commit details
    Browse the repository at this point in the history
  2. Cygwin: Suppress array-bounds warning from NtCurrentTeb()

    This disables a warning seen with gcc 12 caused by intrinsics used by
    the inline implementation of NtCurrentTeb() inside w32api headers.
    
    > In function ‘long long unsigned int __readgsqword(unsigned int)’,
    >     inlined from ‘_TEB* NtCurrentTeb()’ at /usr/include/w32api/winnt.h:10020:86,
    > [...]
    > /usr/include/w32api/psdk_inc/intrin-impl.h:838:1: error: array subscript 0 is outside array bounds of ‘long long unsigned int [0]’ [-Werror=array-bounds]
    
    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523#c6
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    4f8668a View commit details
    Browse the repository at this point in the history
  3. Cygwin: Fix warnings about narrowing conversions of NTSTATUS constants

    Fix warnings with gcc 12 about narrowing conversions of NTSTATUS
    constants when used as case labels, e.g:
    
    > ../../../../src/winsup/cygwin/exceptions.cc: In static member function ‘static int exception::handle(EXCEPTION_RECORD*, void*, CONTEXT*, PDISPATCHER_CONTEXT)’:
    > ../../../../src/winsup/cygwin/exceptions.cc:670:10: error: narrowing conversion of ‘-1073741682’ from ‘NTSTATUS’ {aka ‘int’} to ‘unsigned int’ [-Wnarrowing]
    
    See also: c5bdf60
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    6204d84 View commit details
    Browse the repository at this point in the history
  4. Cygwin: Fix warning about address known to be non-NULL in /proc/locales

    Fix a gcc 12 warning about an address known to be non-NULL in
    format_proc_locale_proc().
    
    > ../../../../src/winsup/cygwin/fhandler/proc.cc: In function ‘BOOL format_proc_locale_proc(LPWSTR, DWORD, LPARAM)’:
    > ../../../../src/winsup/cygwin/fhandler/proc.cc:2156:11: error: the address of ‘iso15924’ will never be NULL [-Werror=address]
    >  2156 |       if (iso15924)
    >       |           ^~~~~~~~
    > ../../../../src/winsup/cygwin/fhandler/proc.cc:2133:11: note: ‘iso15924’ declared here
    >  2133 |   wchar_t iso15924[ENCODING_LEN + 1] = { 0 };
    >       |           ^~~~~~~~
    
    Fixes: c42b98b ("Cygwin: introduce /proc/codesets and /proc/locales")
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    87b066b View commit details
    Browse the repository at this point in the history
  5. Cygwin: Fix warning about narrowing conversions in tape options

    Fix a gcc 12 warning about a narrowing conversion in case labels for
    tape options.
    
    > In file included from /wip/cygwin/src/winsup/cygwin/include/sys/mtio.h:14,
    >                  from ../../../../src/winsup/cygwin/fhandler/tape.cc:13:
    > ../../../../src/winsup/cygwin/fhandler/tape.cc: In member function ‘int mtinfo_drive::set_options(HANDLE, int32_t)’:
    > ../../../../src/winsup/cygwin/fhandler/tape.cc:965:12: error: narrowing conversion of ‘4026531840’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    25a0df8 View commit details
    Browse the repository at this point in the history
  6. Cygwin: asm/socket.h: drop outdated casts

    The _IOR anbd _IOW macros cast the sizeof of their third arg
    uselessly to long. The _IO definitions have been taken from BSD
    in 1995 and never changed again.  The fact that the sizeof() gets
    cast to long is probably a remnant from the past when the stuff
    was supposed to be used on 16 bit machines, but the value was
    supposed to be 32 bit.
    
    Given that the values are not supposed to be ever bigger than 32 bit,
    we drop the (long) cast.  Compare with current FreeBSD, which does
    not cast at all.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    c75f393 View commit details
    Browse the repository at this point in the history
  7. Cygwin: Fix warnings about narrowing conversions of socket ioctls

    Fix gcc 12 warnings about narrowing conversions of socket ioctl constants
    when used as case labels, e.g:
    
    > ../../../../src/winsup/cygwin/net.cc: In function ‘int get_ifconf(ifconf*, int)’:
    > ../../../../src/winsup/cygwin/net.cc:1940:18: error: narrowing conversion of ‘2152756069’ from ‘long int’ to ‘int’ [-Wnarrowing]
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    510cbdf View commit details
    Browse the repository at this point in the history
  8. Cygwin: Avoid use-after-free warnings in __set_lc_time_from_win() etc.

    Rewrite to avoid new use-after-free warnings about realloc(), seen with
    gcc 12, e.g.:
    
    > In function ‘void rebase_locale_buf(const void*, const void*, const char*, const char*, const char*)’,
    >     inlined from ‘int __set_lc_time_from_win(const char*, const lc_time_T*, lc_time_T*, char**, wctomb_p, const char*)’ at ../../../../src/winsup/cygwin/nlsfuncs.cc:705:25:
    > ../../../../src/winsup/cygwin/nlsfuncs.cc:338:24: error: pointer ‘new_lc_time_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
    >   338 |       *ptrs += newbase - oldbase;
    >       |                ~~~~~~~~^~~~~~~~~
    > ../../../../src/winsup/cygwin/nlsfuncs.cc: In function ‘int __set_lc_time_from_win(const char*, const lc_time_T*, lc_time_T*, char**, wctomb_p, const char*)’:
    > ../../../../src/winsup/cygwin/nlsfuncs.cc:699:44: note: call to ‘void* realloc(void*, size_t)’ here
    >   699 |               char *tmp = (char *) realloc (new_lc_time_buf, len);
    
    Technically, it's UB to later refer to the realloced pointer (even just
    for offset computations, without deferencing it), so switch to using
    malloc() to create the resized copy.
    
    Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
    jon-turney authored and github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    65e3e2f View commit details
    Browse the repository at this point in the history
  9. Cygwin: getopt.h: fix a comment

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    bc6fd19 View commit details
    Browse the repository at this point in the history
  10. stdlib.h: define __itoa/__utoa while building newlib

    This avoids a `__utoa undefined' warning when building newlib
    for Cygwin.  We still need to export the symbols for backward
    compatibility.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    54a6a90 View commit details
    Browse the repository at this point in the history
  11. Cygwin: pipe: handle signals explicitely in raw_write

    The simple cygwait call in fhandler_pipe_fifo::raw_write doesn't
    take the SA_RESTART setting into account. Move handling the
    signal into raw_write.
    
    Fixes: 4b25687 ("Cygwin: fhandler_pipe: add raw_read and raw_write")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    3d9eb1b View commit details
    Browse the repository at this point in the history
  12. Cygwin: select: set pipe writable only if PIPE_BUF bytes left

    Linux select(2) returns the pipe as writable if at least one
    free page (4K onl most systems) is left in a page-oriented buffer
    handling. This is the same as PIPE_BUF.
    
    Emulate this behaviour by only returning the pipe as writable
    if at least 4K space is left in the buffer.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    555afcb View commit details
    Browse the repository at this point in the history
  13. Cygwin: pipe: improve writing when pipe buffer is almost full

    So far fhandler_pipe_fifo::raw_write always returns -1/EINTR
    if a signal arrived.  Linux does not do that if there's still
    space left in the pipe buffer.
    
    The Linux buffer handling can't be emulated by Cygwin, but we
    can do something similar which makes it much more likely to still
    write successfully even if the buffer is almost full.
    
    Utilize pipe_data_available to return valid pipe buffer usage
    to raw_write, allowing a more sophisticated way to fill the
    buffer while maintaining comaptibility with non-Cygwin pipes.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    ef844ce View commit details
    Browse the repository at this point in the history
  14. Cygwin: pipe: fix comparison

    There's no reason to overwrite len1 with align if they are the same value.
    
    Fixes: 170e6badb621 ("Cygwin: pipe: improve writing when pipe buffer is almost full")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    61dc66d View commit details
    Browse the repository at this point in the history
  15. Cygwin: pipe: do short writes only once in nonblocking case too

    If a nonblocking write requires short writes, just try it once
    as in the blocking case.  After all, we are nonblocking, so
    don't loop unnecessarily.
    
    Fixes: 170e6badb621 ("Cygwin: pipe: improve writing when pipe buffer is almost full")
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    d83183e View commit details
    Browse the repository at this point in the history
  16. nl_langinfo_l: drop erroneus messages::codeset entry

    The nl_ext array contains offsets into the extended info of
    locale structures, the index being equivalent to the nl_item
    values in langinfo.h.
    
    For the lc_messages_T struct, nl_ext erroneusly contains an
    entry for the codeset member, which is in fact not part of the
    extended info in nl_item.  However, due to that, the offsets for
    subsequent entries are off by one.
    
    Fix this by dropping the messages::codeset entry from nl_ext.
    
    Fixes: d47d5b8 ("Extend locale support to maintain wide char values of native strings")
    Reported-by: Brian Inglis <Brian.Inglis@systematicsw.ab.ca>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    d14b65b View commit details
    Browse the repository at this point in the history
  17. locales: Fix definition of lc_messages_T::codeset

    nl_langinfo_l accesses lc_messages_T::codeset as soon as
    __HAVE_LOCALE_INFO__ is defined, but codeset only exists
    if __HAVE_LOCALE_INFO_EXTENDED__ is defined.
    
    Fix this by defining lc_messages_T::codeset depending on
    __HAVE_LOCALE_INFO__.
    
    Fixes: ac7f1d5 ("Get rid of LCID, reformat type definitions in setlocale.h")
    Reported-by: Inglis <Brian.Inglis@SystematicSW.ab.ca>
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    1807336 View commit details
    Browse the repository at this point in the history
  18. Cygwin: Add locale patches to release message

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    74768ac View commit details
    Browse the repository at this point in the history
  19. Cygwin: add release message for latest pipe changes

    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
    github-cygwin committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    0bc1222 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2024

  1. Add MSYS2 triplet

    Alexpux authored and lazka committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    51380ec View commit details
    Browse the repository at this point in the history
  2. Fix msys library name in import libraries

    Cygwin's speclib doesn't handle dashes or dots. However, we are about to
    rename the output file name from `cygwin1.dll` to `msys-2.0.dll`.
    
    Let's preemptively fix up all the import libraries that would link
    against `msys_2_0.dll` to correctly link against `msys-2.0.dll` instead.
    ktbarrett authored and lazka committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    a116f41 View commit details
    Browse the repository at this point in the history
  3. Rename dll from cygwin to msys

    Alexpux authored and lazka committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    f858c02 View commit details
    Browse the repository at this point in the history
  4. Add functionality for converting UNIX paths in arguments and environm…

    …ent variables to Windows form for native Win32 applications.
    Alexpux authored and lazka committed Aug 25, 2024
    Configuration menu
    Copy the full SHA
    b084abe View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2024

  1. Configuration menu
    Copy the full SHA
    f160385 View commit details
    Browse the repository at this point in the history
  2. - Move root to /usr. - Change sorting mount points. - By default moun…

    …t without ACLs. - Can read /etc/fstab with short mount point format.
    Alexpux authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    6393488 View commit details
    Browse the repository at this point in the history
  3. Instead of creating Cygwin symlinks, use deep copy by default

    The new `winsymlinks` mode `deepcopy` (which is made the default) lets
    calls to `symlink()` create (deep) copies of the source file/directory.
    
    This is necessary because unlike Cygwin, MSYS2 does not try to be its
    own little ecosystem that lives its life separate from regular Win32
    programs: the latter have _no idea_ about Cygwin-emulated symbolic links
    (i.e. system files whose contents start with `!<symlink>\xff\xfe` and
    the remainder consists of the NUL-terminated, UTF-16LE-encoded symlink
    target).
    
    To support Cygwin-style symlinks, the new mode `sysfile` is introduced.
    
    Co-authored-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Alexpux and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    06ea20e View commit details
    Browse the repository at this point in the history
  4. Automatically rewrite TERM=msys to TERM=cygwin

    With MSys1, it was necessary to set the TERM variable to "msys". To
    allow for a smooth transition from MSys1 to MSys2, let's simply handle
    TERM=msys as if the user had not specified TERM at all and wanted us to
    use our preferred TERM value.
    Alexpux authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    222fd37 View commit details
    Browse the repository at this point in the history
  5. Do not convert environment for strace

    Strace is a Windows program so MSYS2 will convert all arguments and environment vars and that makes debugging msys2 software with strace very tricky.
    Alexpux authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    41e8ada View commit details
    Browse the repository at this point in the history
  6. strace.cc: Don't set MSYS=noglob

    Commit message for this code was:
    
    * strace.cc (create_child): Set CYGWIN=noglob when starting new process so that
    
      Cygwin will leave already-parsed the command line alonw."
    
    I can see no reason for it and it badly breaks the ability to use
    strace.exe to investigate calling a Cygwin program from a Windows
    program, for example:
    strace mingw32-make.exe
    .. where mingw32-make.exe finds sh.exe and uses it as the shell.
    The reason it badly breaks this use-case is because dcrt0.cc depends
    on globbing to happen to parse commandlines from Windows programs;
    irrespective of whether they contain any glob patterns or not.
    
    See quoted () comment:
    "This must have been run from a Windows shell, so preserve
     quotes for globify to play with later."
    mingwandroid authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    766e55c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    4f01c3f View commit details
    Browse the repository at this point in the history
  8. strace --quiet: be *really* quiet

    The biggest problem with strace spitting out `create_child: ...` despite
    being asked to be real quiet is that its output can very well interfere
    with scripts' operations.
    
    For example, when running any of Git for Windows' shell scripts with
    `GIT_STRACE_COMMANDS=/path/to/logfile` (which is sadly an often needed
    debugging technique while trying to address the many MSYS2 issues Git for
    Windows faces), any time the output of any command is redirected into a
    variable, it will include that `create_child: ...` line, wreaking havoc
    with Git's expectations.
    
    So let's just really be quiet when we're asked to be quiet.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    d43f1ee View commit details
    Browse the repository at this point in the history
  9. path_conv: special-case root directory to have trailing slash

    When converting `/c/` to `C:\`, the trailing slash is actually really
    necessary, as `C:` is not an absolute path.
    
    We must be very careful to do this only for root directories, though. If
    we kept the trailing slash also for, say, `/y/directory/`, we would run
    into the following issue: On FAT file systems, the normalized path is
    used to fake inode numbers. As a result, `Y:\directory\` and
    `Y:\directory` have different inode numbers!!!
    
    This would result in very non-obvious symptoms. Back when we were too
    careless about keeping the trailing slash, it was reported to the Git
    for Windows project that the `find` and `rm` commands can error out on
    FAT file systems with very confusing "No such file or directory" errors,
    for no good reason.
    
    During the original investigation, Vasil Minkov pointed out in
    git-for-windows/git#1497 (comment),
    that this bug had been fixed in Cygwin as early as 1997... and the bug
    was unfortunately reintroduced into early MSYS2 versions.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Alexpux authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    0053f7b View commit details
    Browse the repository at this point in the history
  10. When converting to a Unix path, avoid double trailing slashes

    When calling `cygpath -u C:/msys64/` in an MSYS2 setup that was
    installed into `C:/msys64/`, the result should be `/`, not `//`.
    
    Let's ensure that we do not append another trailing slash if the
    converted path already ends in a slash.
    
    This fixes msys2/msys2-runtime#112
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    1e8a891 View commit details
    Browse the repository at this point in the history
  11. msys2_path_conv: pass PC_NOFULL to path_conv

    In theory this doesn't make a difference because posix_to_win32_path()
    is only called with rooted/absolute paths, but as pointed out in
    msys2/msys2-runtime#103 PC_NOFULL will preserve
    the trailing slash of unix paths (for some reason).
    
    See "cygpath -m /bin/" (preserved) vs "cygpath -am /bin/" (dropped)
    
    One use case where we need to trailing slashes to be preserved is the GCC build
    system:
    https://github.com/gcc-mirror/gcc/blob/6d82e0fea5f988e829912a/gcc/Makefile.in#L2314
    
    The Makefile appends a slash to the prefixes and the C code doing relocation will
    treat the path as a directory if there is a trailing slash. See
    msys2/MINGW-packages#14173 for details.
    
    With this change all our MSYS2 path_conv tests pass again.
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    673065d View commit details
    Browse the repository at this point in the history
  12. path-conversion: Introduce ability to switch off conversion.

    When calling windows native apps from MSYS2, the runtime tries to
    convert commandline arguments by a specific set of rules. This idea was
    inherited from the MSys/MinGW project (which is now seemingly stale, yet
    must be credited with championing this useful feature, see MinGW wiki
    https://web.archive.org/web/20201112005258/http://www.mingw.org/wiki/Posix_path_conversion).
    
    If the user does not want that behavior on a big scale, e.g. inside a
    Bash script, with the changes introduced in this commit, the user can
    now set the the environment variable `MSYS_NO_PATHCONV` when calling
    native windows commands.
    
    This is a feature that has been introduced in Git for Windows via
    git-for-windows#11 and it predates
    support for the `MSYS2_ENV_CONV_EXCL` and `MSYS2_ARG_CONV_EXCL`
    environment variables in the MSYS2 runtime; Many users find the
    simplicity of `MSYS_NO_PATHCONV` appealing.
    
    So let's teach MSYS2 proper this simple trick that still allows using
    the sophisticated `MSYS2_*_CONV_EXCL` facilities but also offers a
    convenient catch-all "just don't convert anything" knob.
    
    Signed-off-by: 마누엘 <nalla@hamal.uberspace.de>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    마누엘 authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    e1db148 View commit details
    Browse the repository at this point in the history
  13. dcrt0.cc: Untangle allow_glob from winshell

    Otherwise if globbing is allowed and we get called from a
    Windows program, build_argv thinks we've been called from
    a Cygwin program.
    mingwandroid authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    f6e516d View commit details
    Browse the repository at this point in the history
  14. dcrt0.cc (globify): Don't quote literal strings differently when dos_…

    …spec
    
    Reverts 25ba8f3. I can't figure out what
    the intention was. I'm sure I'll find out soon enough when everything breaks.
    
    This change means that input of:
      '"C:/test.exe SOME_VAR=\"literal quotes\""'
    
    becomes:
      'C:/test.exe SOME_VAR="literal quotes"'
    
    instead of:
      'C:/test.exe SOME_VAR=\literal quotes\'
    
    .. which is at least consistent with the result for:
      '"no_drive_or_colon SOME_VAR=\"literal quotes\""'
    
    The old result of course resulted in the quoted string being split into
    two arguments at the space which is clearly not intended.
    
    I *guess* backslashes in dos paths may have been the issue here?
    If so I don't care since we should not use them, ever, esp. not at
    the expense of sensible forward-slash-containing input.
    mingwandroid authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    1059fbb View commit details
    Browse the repository at this point in the history
  15. Add debugging for build_argv

    mingwandroid authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    f8da08f View commit details
    Browse the repository at this point in the history
  16. environ.cc: New facility/environment variable MSYS2_ENV_CONV_EXCL

    Works very much like MSYS2_ARG_CONV_EXCL. In fact it uses the same
    function, arg_heuristic_with_exclusions (). Also refactors parsing
    the env. variables to use new function, string_split_delimited ().
    
    The env. that is searched through is the merged (POSIX + Windows)
    one. It remains to be seen if this should be made an option or not.
    
    This feature was prompted because the R language (Windows exe) calls
    bash to run configure.win, which then calls back into R to read its
    config variables (LOCAL_SOFT) and when this happens, msys2-runtime
    converts R_ARCH from "/x64" to an absolute Windows path and appends
    it to another absolute path, R_HOME, forming an invalid path.
    mingwandroid authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    03d6fe1 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    90d66ee View commit details
    Browse the repository at this point in the history
  18. Introduce the enable_pcon value for MSYS

    It is simply the negation of `disable_pcon`, i.e. `MSYS=enable_pcon` is
    equivalent to `MSYS=nodisable_pcon` (the former is slightly more
    intuitive than the latter) and likewise `MSYS=noenable_pcon` is
    equivalent to `MSYS=disable_pcon` (here, the latter is definitely more
    intuitive than the former).
    
    This is needed because we just demoted the pseudo console feature to be
    opt-in instead of opt-out, and it would be awkward to recommend to users
    to use "nodisable_pcon"... "nodisable" is not even a verb.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    7b84fed View commit details
    Browse the repository at this point in the history
  19. popen: call /usr/bin/sh instead of /bin/sh

    We mount /usr/bin to /bin, but in a chroot this is broken and we
    have no /bin, so try to use the real path.
    
    chroot is used by pacman to run install scripts when called with --root
    and this broke programs in install scripts calling popen()
    (install-info from texinfo for example)
    
    There are more paths hardcoded to /bin in cygwin which might also be broken
    in this scenario, so this maybe should be extended to all of them.
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    6f87e23 View commit details
    Browse the repository at this point in the history
  20. Disable the 'cygwin' GitHub workflow

    It does not work at all. For example, `rpm -E %fedora` says that there
    should be version 33 of rpmsphere at
    https://github.com/rpmsphere/noarch/tree/master/r, but there is only
    version 32.
    
    Another thing that is broken: Cygwin now assumes that a recent
    mingw-w64-headers version is available, but Fedora apparently only
    offers v7.0.0, which is definitely too old to accommodate for the
    expectation of cygwin/cygwin@c1f7c4d1b6d7.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    df7a56e View commit details
    Browse the repository at this point in the history
  21. CI: add a GHA for doing a basic build test

    Build with --disable-dependency-tracking because we only build once
    and this saves 3-4 minutes in CI.
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    cf56ccd View commit details
    Browse the repository at this point in the history
  22. CI: fix the build with gcc 13

    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    083c245 View commit details
    Browse the repository at this point in the history
  23. Set up a GitHub Action to keep in sync with Cygwin

    This will help us by automating an otherwise tedious task.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    91f46df View commit details
    Browse the repository at this point in the history
  24. Expose full command-lines to other Win32 processes by default

    In the Cygwin project, it was decided that the command-line of Cygwin
    processes, as shown in the output of `wmic process list`, would suffer
    from being truncated to 32k (and is transmitted to the child process via
    a different mechanism, anyway), and therefore only the absolute path of
    the executable is shown by default.
    
    Users who would like to see the full command-line (even if it is
    truncated) are expected to set `CYGWIN=wincmdln` (or, in MSYS2's case,
    `MSYS=wincmdln`).
    
    Seeing as MSYS2 tries to integrate much better with the surrounding
    Win32 ecosystem than Cygwin, it makes sense to turn this on by default.
    
    Users who wish to suppress it can still set `MSYS=nowincmdln`.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4dd6aad View commit details
    Browse the repository at this point in the history
  25. Add a helper to obtain a function's address in kernel32.dll

    In particular, we are interested in the address of the CtrlRoutine
    and the ExitProcess functions. Since kernel32.dll is loaded first thing,
    the addresses will be the same for all processes (matching the
    CPU architecture, of course).
    
    This will help us with emulating SIGINT properly (by not sending signals
    to *all* processes attached to the same Console, as
    GenerateConsoleCtrlEvent() would do).
    
    Co-authored-by: Naveen M K <naveen@syrusdark.website>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho and naveen521kk committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    6ef58ed View commit details
    Browse the repository at this point in the history
  26. Emulate GenerateConsoleCtrlEvent() upon Ctrl+C

    This patch is heavily inspired by the Git for Windows' strategy in
    handling Ctrl+C.
    
    When a process is terminated via TerminateProcess(), it has no chance to
    do anything in the way of cleaning up. This is particularly noticeable
    when a lengthy Git for Windows process tries to update Git's index file
    and leaves behind an index.lock file. Git's idea is to remove the stale
    index.lock file in that case, using the signal and atexit handlers
    available in Linux. But those signal handlers never run.
    
    Note: this is not an issue for MSYS2 processes because MSYS2 emulates
    Unix' signal system accurately, both for the process sending the kill
    signal and the process receiving it. Win32 processes do not have such a
    signal handler, though, instead MSYS2 shuts them down via
    `TerminateProcess()`.
    
    For a while, Git for Windows tried to use a gentler method, described in
    the Dr Dobb's article "A Safer Alternative to TerminateProcess()" by
    Andrew Tucker (July 1, 1999),
    http://www.drdobbs.com/a-safer-alternative-to-terminateprocess/184416547
    
    Essentially, we injected a new thread into the running process that does
    nothing else than running the ExitProcess() function.
    
    However, this was still not in line with the way CMD handles Ctrl+C: it
    gives processes a chance to do something upon Ctrl+C by calling
    SetConsoleCtrlHandler(), and ExitProcess() simply never calls that
    handler.
    
    So for a while we tried to handle SIGINT/SIGTERM by attaching to the
    console of the command to interrupt, and generating the very same event
    as CMD does via GenerateConsoleCtrlEvent().
    
    This method *still* was not correct, though, as it would interrupt
    *every* process attached to that Console, not just the process (and its
    children) that we wanted to signal. A symptom was that hitting Ctrl+C
    while `git log` was shown in the pager would interrupt *the pager*.
    
    The method we settled on is to emulate what GenerateConsoleCtrlEvent()
    does, but on a process by process basis: inject a remote thread and call
    the (private) function kernel32!CtrlRoutine.
    
    To obtain said function's address, we use the dbghelp API to generate a
    stack trace from a handler configured via SetConsoleCtrlHandler() and
    triggered via GenerateConsoleCtrlEvent(). To avoid killing each and all
    processes attached to the same Console as the MSYS2 runtime, we modify
    the cygwin-console-helper to optionally print the address of
    kernel32!CtrlRoutine to stdout, and then spawn it with a new Console.
    
    Note that this also opens the door to handling 32-bit process from a
    64-bit MSYS2 runtime and vice versa, by letting the MSYS2 runtime look
    for the cygwin-console-helper.exe of the "other architecture" in a
    specific place (we choose /usr/libexec/, as it seems to be the
    convention for helper .exe files that are not intended for public
    consumption).
    
    The 32-bit helper implicitly links to libgcc_s_dw2.dll and
    libwinpthread-1.dll, so to avoid cluttering /usr/libexec/, we look for
    the helped of the "other" architecture in the corresponding mingw32/ or
    mingw64/ subdirectory.
    
    Among other bugs, this strategy to handle Ctrl+C fixes the MSYS2 side of
    the bug where interrupting `git clone https://...` would send the
    spawned-off `git remote-https` process into the background instead of
    interrupting it, i.e. the clone would continue and its progress would be
    reported mercilessly to the console window without the user being able
    to do anything about it (short of firing up the task manager and killing
    the appropriate task manually).
    
    Note that this special-handling is only necessary when *MSYS2* handles
    the Ctrl+C event, e.g. when interrupting a process started from within
    MinTTY or any other non-cmd-based terminal emulator. If the process was
    started from within `cmd.exe`'s terminal window, child processes are
    already killed appropriately upon Ctrl+C, by `cmd.exe` itself.
    
    Also, we can't trust the processes to end it's subprocesses upon receiving
    Ctrl+C. For example, `pip.exe` from `python-pip` doesn't kill the python
    it lauches (it tries to but fails), and I noticed that in cmd it kills python
    also correctly, which mean we should kill all the process using
    `exit_process_tree`.
    
    Co-authored-by: Naveen M K <naveen@syrusdark.website>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho and naveen521kk committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    38a8880 View commit details
    Browse the repository at this point in the history
  27. kill: kill Win32 processes more gently

    This change is the equivalent to the change to the Ctrl+C handling we
    just made.
    
    Co-authored-by: Naveen M K <naveen@syrusdark.website>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho and naveen521kk committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    b9d1fad View commit details
    Browse the repository at this point in the history
  28. Cygwin: make option for native inner link handling.

    This code has been causing issues with SUBST and mapped network drives,
    so add an option (defaulted to on) which can be used to disable it where
    needed.  MSYS=nonativeinnerlinks
    jeremyd2019 authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    715f6ce View commit details
    Browse the repository at this point in the history
  29. docs: skip building texinfo and PDF files

    The MSYS2 packages lack the infrastructure to build those.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    abeeb31 View commit details
    Browse the repository at this point in the history
  30. install-libs: depend on the "toollibs"

    Before symlinking libg.a, we need the symlink source `libmsys-2.0.a`: in
    MSYS2, we copy by default (if we were creating Unix-style symlinks, the
    target would not have to exist before symlinking, but when copying we do
    need the source _right away_).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    fbe8ae3 View commit details
    Browse the repository at this point in the history
  31. POSIX-ify the SHELL variable

    When calling a non-MSys2 binary, all of the environment is converted from
    POSIX to Win32, including the SHELL environment variable. In Git for
    Windows, for example, `SHELL=/usr/bin/bash` is converted to
    `SHELL=C:\Program Files\Git\usr\bin\bash.exe` when calling the `git.exe`
    binary. This is appropriate because non-MSys2 binaries would not handle
    POSIX paths correctly.
    
    Under certain circumstances, however, `git.exe` calls an *MSys2* binary in
    turn, such as `git config --edit` calling `vim.exe` unless Git is
    configured to use another editor specifically.
    
    Now, when this "improved vi" calls shell commands, it uses that $SHELL
    variable *without quoting*, resulting in a nasty error:
    
    	C:\Program: No such file or directory
    
    Many other programs behave in the same manner, assuming that $SHELL does
    not contain spaces and hence needs no quoting, unfortunately including
    some of Git's own scripts.
    
    Therefore let's make sure that $SHELL gets "posified" again when entering
    MSys2 programs.
    
    Earlier attempts by Git for Windows contributors claimed that adding
    `SHELL` to the `conv_envvars` array does not have the intended effect.
    These reports just missed that the `conv_start_chars` array (which makes
    the code more performant) needs to be adjusted, too.
    
    Note that we set the `immediate` flag to `true` so that the environment
    variable is set immediately by the MSys2 runtime, i.e. not only spawned
    processes will see the POSIX-ified `SHELL` variable, but the MSys2 runtime
    *itself*, too.
    
    This fixes git-for-windows/git#542,
    git-for-windows/git#498, and
    git-for-windows/git#468.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    38abc7c View commit details
    Browse the repository at this point in the history
  32. Handle ORIGINAL_PATH just like PATH

    MSYS2 recently introduced that hack where the ORIGINAL_PATH variable is
    set to the original PATH value in /etc/profile, unless previously set.
    In Git for Windows' default mode, that ORIGINAL_PATH value is the used
    to define the PATH variable explicitly.
    
    So far so good.
    
    The problem: when calling from inside an MSYS2 process (such as Bash) a
    MINGW executable (such as git.exe) that then calls another MSYS2
    executable (such as bash.exe), that latter call will try to re-convert
    ORIGINAL_PATH after the previous call converted ORIGINAL_PATH from POSIX
    to Windows paths. And this conversion may very well fail, e.g. when the
    path list contains mixed semicolons and colons.
    
    So let's just *force* the MSYS2 runtime to handle ORIGINAL_PATH in the
    same way as the PATH variable (which conversion works, as we know).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    9c758e8 View commit details
    Browse the repository at this point in the history
  33. uname: allow setting the system name to CYGWIN

    We are currently trying to move our cygwin build environment closer
    to cygwin and some autotools/bash based build systems call "uname -s"
    to figure out the OS and in many cases only handle the cygwin case, so
    we have to patch them.
    
    With this instead of patching we can set MSYSTEM=CYGWIN and change
    uname output that way.
    
    The next step would be to always output CYGWIN in an msys env by default,
    but for now this allows us to get rid of all the patches without
    affecting users.
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    312f766 View commit details
    Browse the repository at this point in the history
  34. Pass environment variables with empty values

    There is a difference between an empty value and an unset environment
    variable. We should not confuse both; If the user wants to unset an
    environment variable, they can certainly do so (unsetenv(3), or in the
    shell: 'unset ABC').
    
    This fixes Git's t3301-notes.sh, which overrides environment variables
    with empty values.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    e19af20 View commit details
    Browse the repository at this point in the history
  35. Optionally disallow empty environment values again

    We just disabled the code that skips environment variables whose values
    are empty.
    
    However, this code was introduced a long time ago into Cygwin in
    d6b1ac7 (* environ.cc (build_env): Don't put an empty environment
    variable into the environment.  Optimize use of "len". * errno.cc
    (ERROR_MORE_DATA): Translate to EMSGSIZE rather than EAGAIN.,
    2006-09-07), seemingly without any complaints.
    
    Meaning: There might very well be use cases out there where it makes
    sense to skip empty-valued environment variables.
    
    Therefore, it seems like a good idea to have a "knob" to turn it back
    on. With this commit, we introduce such a knob: by setting
    `noemptyenvvalues` the `MSYS` variable (or appending it if that variable
    is already set), users can tell the MSYS2 runtime to behave just like in
    the olden times.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4deb751 View commit details
    Browse the repository at this point in the history
  36. build_env(): respect the MSYS environment variable

    With this commit, you can call
    
    	MSYS=noemptyenvvalues my-command
    
    and it does what is expected: to pass no empty-valued environment
    variables to `my-command`.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    a1f282d View commit details
    Browse the repository at this point in the history
  37. Revert "Cygwin: Enable dynamicbase on the Cygwin DLL by default"

    This reverts commit 943433b.
    
    This seems to fix fork errors under Docker, see
    https://cygwin.com/pipermail/cygwin/2022-December/252711.html
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    d1b382b View commit details
    Browse the repository at this point in the history
  38. CI: set -Wno-error=maybe-uninitialized

    After the update of msys2-w32api from v11.0.1 to current master (and soon to be v12)
    we get: winsup/cygwin/exceptions.cc:1736:33: error: '<anonymous>' may be used uninitialized [-Werror=maybe-uninitialized]
    
    Ignore it like the rest.
    
    Fixes #214
    lazka authored and dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    997f6f3 View commit details
    Browse the repository at this point in the history
  39. Avoid sharing cygheaps across Cygwin versions

    It frequently leads to problems when trying, say, to call from MSYS2's
    Bash into Cygwin's or Git for Windows', merely because sharing that data
    is pretty finicky.
    
    For example, using the MSYS2' Bash using the MSYS2 runtime version that
    is current at time of writing, trying to call Cygwin's programs fails
    in manners like this:
    
        $ /c/cygwin64/bin/uname -r
          0 [main] uname (9540) child_copy: cygheap read copy failed, 0x800000000..0x800010BE0, done 0, windows pid 9540, Win32 error 6
        680 [main] uname 880 C:\cygwin64\bin\uname.exe: *** fatal error - couldn't create signal pipe, Win32 error 5
    
    with the rather misleading exit code 127 (a code which is reserved to
    indicate that a command was not found).
    
    Let's just treat the MSYS2 runtime and the Cygwin runtime as completely
    incompatible with one another, by virtue of using a different
    magic constant than merely `CHILD_INFO_MAGIC`.
    
    By using the msys2-runtime commit to modify that magic constant, we can
    even spawn programs using a different MSYS2 runtime (such as Git for
    Windows') because the commit serves as the tell-tale whether two MSYS2
    runtime versions are compatible with each other. To support building in
    the MSYS2-packages repository (where we do not check out the
    `msys2-runtime` but instead check out Cygwin and apply patches on top),
    let's accept a hard-coded commit hash as `./configure` option.
    
    One consequence is that spawned MSYS processes using a different MSYS2
    runtime will not be visible as such to the parent process, i.e. they
    cannot share any resources such as pseudo terminals. But that's okay,
    they are simply treated as if they were regular Win32 programs.
    
    Note: We have to use a very rare form of encoding the brackets in the
    `expr` calls: quadrigraphs (for a thorough explanation, see
    https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.70/html_node/Quadrigraphs.html#Quadrigraphs).
    This is necessary because it is apparently impossible to encode brackets
    in `configure.ac` files otherwise.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    e347515 View commit details
    Browse the repository at this point in the history
  40. uname: report msys2-runtime commit hash, too

    Having just Cygwin's version in the output of `uname` is not helpful, as
    both MSYS2 as well as Git for Windows release intermediate versions of
    the MSYS2 runtime much more often than Cygwin runtime versions are
    released.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    dd9d970 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2024

  1. Start the merging-rebase to cygwin-3.5.4

    This commit starts the rebase of 00605d0 to 022cf7285c
    dscho committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    886813e View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2024

  1. Cygwin: pipe: Fix a regression that raw_write() slows down

    After the commit 7f3c22532577, writing to pipe extremely slows down.
    This is because cygwait(select_sem, 10, cw_cancel) is called even
    when write operation is already completed. With this patch, the
    cygwait() is called only if the write operation is not completed.
    
    Backported-from: 37ab3e0d55 (Cygwin: pipe: Fix a regression that raw_write() slows down, 2024-09-01)
    Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256398.html
    Fixes: 7f3c22532577 ("Cygwin: pipe: handle signals explicitely in raw_write")
    Reported-by: Jim Reisert AD1C <jjreisert@alum.mit.edu>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    tyan0 authored and dscho committed Sep 3, 2024
    Configuration menu
    Copy the full SHA
    2bfb773 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2024

  1. Merge branch 'msys2-3.5.4'

    Seeing as Git for Windows tries to stay close to the upstream MSYS2
    project, it makes sense to integrate their patches verbatim.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    fe5797d View commit details
    Browse the repository at this point in the history
  2. fixup!!! CI: add a GHA for doing a basic build test

    This updates a GitHub Action's version to stay up to date.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    c325a46 View commit details
    Browse the repository at this point in the history
  3. Handle 8-bit characters under LOCALE=C

    Even when the character set is specified as ASCII, we should handle data
    outside the 7-bit range gracefully by simply copying it, even if it is
    technically no longer ASCII.
    
    This fixes several of Git for Windows' tests, e.g. t7400.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    3cf583c View commit details
    Browse the repository at this point in the history
  4. Bump actions/checkout from 2 to 4

    Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v2...v4)
    
    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    23958eb View commit details
    Browse the repository at this point in the history
  5. Mention the extremely useful small_printf() function

    It came in real handy while debugging an issue that strace 'fixed'.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    51d19bb View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    699c573 View commit details
    Browse the repository at this point in the history
  7. Fixed path converting with non ascii char.

    When a non ascii char is at the beginning of a path the current conversion
    destroys the path. This fix will prevent this with an extra check for
    non-ascii UTF-8 characters.
    
    Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: 마누엘 <nalla@hamal.uberspace.de>
    마누엘 authored and dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    885c2fa View commit details
    Browse the repository at this point in the history
  8. Do not try to sync with Cygwin

    This is a forked repository...
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    76c8b24 View commit details
    Browse the repository at this point in the history
  9. Make paths' WCS->MBS conversion explicit

    	* dcrt0.cc (dll_crt0_1), dtable.cc (handle_to_fn), environ.cc
    	(environ_init, getwinenveq, build_env), external.cc
    	(fillout_pinfo), fhandler_disk_file.cc (__DIR_mounts::eval_ino,
    	fhandler_disk_file::readdir_helper), fhandler_netdrive.cc
    	(fhandler_netdrive::readdir), fhandler_process.cc
    	(format_process_winexename, format_process_maps,
    	format_process_stat, format_process_status), fhandler_procsys.cc
    	(fill_filebuf, fhandler_procsys::readdir), mount.cc
    	(fs_info::update, mount_info::create_root_entry,
    	mount_info::conv_to_posix_path, mount_info::from_fstab_line),
    	nlsfuncs.cc (internal_setlocale), path.cc (path_conv::check,
    	sysmlink_info::check_shortcut, symlink_info::check_sysfile,
    	symlink_info::check_reparse_point,
    	symlink_info::check_nfs_symlink, cygwin_conv_path,
    	cygwin_conv_path_list, cwdstuff::get_error_desc, cwdstuff::get),
    	strfuncs.cc (sys_wcstombs_no_path, sys_wcstombs_alloc_no_path),
    	uinfo.cc (ontherange, fetch_from_path, cygheap_pwdgrp::get_home,
    	cygheap_pwdgrp::get_shell, cygheap_pwdgrp::get_gecos), wchar.h
    	(sys_wcstombs_no_path, sys_wcstombs_alloc_no_path): Convert call
    	sites of the sys_wcstombs*() family to specify explicitly when the
    	parameter refers to a path or file name, to avoid future
    	misconversions.
    
    Detailed explanation:
    
    The sys_wcstombs() function contains special handling for paths/file
    names, to work around file name restriction on Windows that are
    unexpected in the POSIX context of Cygwin.
    
    We actually do not want that special handling for WCS strings that
    do *not* refer to paths or file names.
    
    Neither do we want to convert those special file names unless they come
    from inside Cygwin: if the source of the string value is the Windows API,
    we *know* it cannot be such a special file name because Windows itself
    would not be able to handle it in the way Cygwin does.
    
    So let's switch the previous sys_wcstombs()/sys_wcstombs_no_path() (and
    the *_alloc* variant) around to sys_wcstombs_path()/sys_wcstombs(). We do
    this for several reasons:
    
    - whenever a call site wants to convert a WCS representation of a path or
      file name to an MBS one, it should be made very clear that we *want* the
      special file name conversion to happen.
    
    - it is shorter to read and write.
    
    - future calls to sys_wcstombs() will not incur unwanted conversion by
      accident (it is easy for unsuspecting programmers to assume that the
      function name "sys_wcstombs()" refers to a regular text conversion that
      has nothing to do with paths or filenames).
    
    By keeping the name sys_wcstombs() (and not switching to
    sys_wcstombs_path()), the following call sites are implicitly changed to
    *exclude* the special path/file name conversion:
    
    cygheap.h (get_drive):
    	Cannot contain special characters
    
    external.cc (cygwin_internal):
    	Refers to user/domain names, not paths
    
    fhandler_clipboard.cc (fhandler_dev_clipboard::read):
    	Is not a path or file name but characters from the Windows
    	clipboard
    
    fhandler_console.cc: (dev_console::con_to_str):
    	Is not a path or file name but characters from the console
    
    fhandler_registry.cc (encode_regname):
    	Is a registry key, not a path or filename
    
    fhandler_registry.cc (multi_wcstombs):
    	All call sites pass registry values, not paths or filenames
    
    fhandler_registry.cc (fstat):
    	Is a registry value, not a path or filename
    
    fhandler_registry.cc (fill_filebuf):
    	Is a registry value, not a path or filename
    
    net.cc (get_ipv4fromreg):
    	Is a registry value, not a path or filename
    
    net.cc (get_friendlyname):
    	Is a device name, not a path or filename
    
    netdb.cc (open_system_file):
    	Is from outside Cygwin
    
    smallprint.cc (__small_vsprintf):
    	Is a free text, not a path or filename
    
    strfuncs.cc (strlwr):
    	Should preserve the characters from the private page if there
    	are any
    
    strfuncs.cc (strupr):
    	Should preserve the characters from the private page if there
    	are any
    
    uinfo.cc (cygheap_user::init):
    	Refers to a user name, not a path or filename
    
    uinfo.cc (pwdgrp::fetch_account_from_windows):
    	Refers to value from outside Cygwin
    
    By keeping the function name sys_wcstombs_alloc() (and not changing it to
    sys_wcstombs_alloc_path()), the following call sites are implicitly
    changed to *exclude* the special path/file name conversion:
    
    ldap.cc (cyg_ldap::remap_uid):
    	Refers to a user name, not a path or filename
    
    ldap.cc (cyg_ldap::remap_gid):
    	Refers to a group name, not a path or filename
    
    pinfo.cc (_pinfo::cmdline):
    	Refers to a command line from Windows, outside Cygwin
    
    uinfo.cc (cygheap_user::env_logsrv):
    	Is a server name, not a path or filename
    
    uinfo.cc (cygheap_user::env_domain):
    	Refers to the user/domain name, not a path or filename
    
    uinfo.cc (cygheap_user::env_userprofile):
    	Refers to Windows' idea of a path, outside Cygwin
    
    uinfo.cc (cygheap_user::env_systemroot):
    	Refers to Windows' idea of a path, outside Cygwin
    
    uinfo.cc (fetch_from_description):
    	Refers to values from outside of Cygwin
    
    uinfo.cc (cygheap_pwdgrp::get_gecos):
    	Refers to user/domain name and email address, not path nor filename
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    70b4715 View commit details
    Browse the repository at this point in the history
  10. Allow native symlinks to non-existing targets in 'nativestrict' mode

    Windows native symlinks must match the type of their target (file or
    directory), otherwise native Windows tools will fail. Creating symlinks in
    'nativestrict' mode currently requires the target to exist in order to
    check its type.
    
    However, the target of a symlink can change at any time after the symlink
    has been created. Thus users of native symlinks must be prepared to deal
    with type mismatches anyway. Checking the target type at symlink creation
    time is not a good reason to violate the symlink() API specification.
    
    In 'nativestrict' mode, always create native symlinks. Choose the symlink
    type according to the target if it exists. Otherwise check the target path
    for a trailing '/' as hint to create a directory symlink.
    
    This allows callers to explicitly specify the expected target type, e.g.:
    
      $ ln -s test/ link-to-test
      $ mkdir test
    
    Signed-off-by: Karsten Blees <blees@dcon.de>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    kblees authored and dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    9614377 View commit details
    Browse the repository at this point in the history
  11. Use MB_CUR_MAX == 6 by default

    Internally, Cygwin already uses __utf8_mbtowc(), even if it still claims
    to use the "ASCII" charset.
    
    But the `MB_CUR_MAX` value (which is not actually a constant, but
    dependent on the current locale) was still 1, which broke the initial
    `globify()` call while parsing the the command-line in `build_argv()`
    for non-ASCII arguments.
    
    This fixes git-for-windows/git#2189
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    97cefff View commit details
    Browse the repository at this point in the history
  12. Change the default base address for x86_64

    This might break things, but it turns out several Windows libraries like
    to be loaded at 0x180000000.
    
    This causes a problem, because `msys-2.0.dll` loads at `0x180040000` and
    expects `0x180000000-0x180040000` to be available. A problem arises when
    Antiviruses (or other DLL hooking mechanisms) load a DLL whose preferred
    load address is `0x180000000` and fits in size before `0x180010000`:
    
    1. `msys-2.0.dll` loads and fills `0x180010000-0x180040000` assuming no
       shared console structure is going to be needed.
    
    2. Another DLL loads and fills `0x180000000-0x18000xxxx`
    
    3. `msys-2.0.dll` tries to load `0x180000000-0x180010000` but it's not
       available. It falls back to another address, but down the line
       something else fails.
    
    This bug triggers when using subshells (e.g.: `git clone --recursive`).
    
    The MSYS2 runtime should be able to work around the address conflict,
    but the code is failing in some way or other...
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Mikael Larsson <95430516+chirpnot@users.noreply.github.com>
    chirpnot authored and dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    0472dec View commit details
    Browse the repository at this point in the history
  13. Merge pull request git-for-windows#1 from dscho/git-for-windows

    Assorted fixes for Git for windows
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    02f2b24 View commit details
    Browse the repository at this point in the history
  14. Merge pull request git-for-windows#10 from kblees/kb/symlinks

    Allow native symlinks to non-existing targets in 'nativestrict' mode
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    48ca2cf View commit details
    Browse the repository at this point in the history
  15. Merge branch 'wcstombs'

    This topic branch fixes the problem where a UTF-16 command-line was
    converted to UTF-8 in an incorrect way (because Cygwin treated it as if
    it was a file name and applied some magic that is intended to allow for
    otherwise invalid file names on Windows).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    5ba33f7 View commit details
    Browse the repository at this point in the history
  16. Merge pull request git-for-windows#37 from chirpnot/main

    Workaround certain anti-malware programs
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    1ff1749 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2024

  1. Cygwin: console: Disable cons_master_thread in win32-input-mode

    When win32-input-mode (which is supported by Windows Termainal) is
    set by "\033[?9001h", cons_master_thread does not work properly and
    consumes larger and larger memory space. This is because sending
    event by WriteConsoleInput() is translated into the sequence that
    is used by win32-input-mode. Due to this behaviour, write-back
    of the INPUT_RECORDs does not work as expected. With this patch,
    cons_master_thread is disabled on win32-input-mode where the signal
    keys such as Ctrl-C, Ctrl-Z etc. never comes.
    
    Backported-from: 68a14b66ff (Cygwin: console: Disable cons_master_thread in win32-input-mode, 2024-08-31)
    Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256380.html
    Fixes: ff4440f ("Cygwin: console: Introduce new thread which handles input signal.")
    Reported-by: Adamyg Mob <adamyg.mob@gmail.com>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    (cherry picked from commit 84d77e5918e18170c393407d477140fcf5d3e432)
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    tyan0 authored and dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    900a410 View commit details
    Browse the repository at this point in the history
  2. Cygwin: pipe: Fix a regression that raw_write() slows down

    After the commit 7f3c22532577, writing to pipe extremely slows down.
    This is because cygwait(select_sem, 10, cw_cancel) is called even
    when write operation is already completed. With this patch, the
    cygwait() is called only if the write operation is not completed.
    
    Backported-from: 37ab3e0d55 (Cygwin: pipe: Fix a regression that raw_write() slows down, 2024-09-01)
    Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256398.html
    Fixes: 7f3c22532577 ("Cygwin: pipe: handle signals explicitely in raw_write")
    Reported-by: Jim Reisert AD1C <jjreisert@alum.mit.edu>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    (cherry picked from commit f78009cb1ccf84cc343cf2441c76196461d87532)
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    tyan0 authored and dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    8854bb4 View commit details
    Browse the repository at this point in the history
  3. msys2-runtime: restore fast path for current user primary group

    Commit a5bcfe6 removed an optimization that fetches the
    default group from the current user token, as it is sometimes
    not accurate such as when groups like the builtin
    Administrators group is the primary group.
    
    However, removing this optimization causes extremely poor
    performance when connected to some Active Directory
    environments.
    
    Restored this optimization as the default behaviour, and
    added a `group: db-accurate` option to `nsswitch.conf` that
    can be used to disable the optimization in cases where
    accurate group information is required.
    
    This fixes git-for-windows/git#4459
    
    Signed-off-by: Richard Glidden <richard@glidden.org>
    rglidden authored and dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    f4fb564 View commit details
    Browse the repository at this point in the history
  4. Cygwin: pipe: Restore blocking mode of read pipe on close()/raw_read()

    If a cygwin app is executed from a non-cygwin app and the cygwin
    app exits, the read pipe remains in the non-blocking mode because
    of the commit fc691d0246b9. Due to this behaviour, the non-cygwin
    app cannot read the pipe correctly after that. Similarly, if a
    non-cygwin app is executed from a cygwin app and the non-cygwin
    app exits, the read pipe remains in the blocking mode. With this
    patch, the blocking mode of the read pipe is stored into a variable
    was_blocking_read_pipe on set_pipe_non_blocking() when the cygwin
    app starts and restored on close(). In addition, the pipe mode is
    set to non-blocking mode in raw_read() if the mode is blocking
    mode by referring the variable is_blocking_read_pipe as well.
    is_blocking_read_pipe is a member of fhandler_pipe class and is set
    by set_pipe_non_blocking(), so if other process sets the pipe mode
    to blocking mode, the current process cannot know the pipe is
    blocking mode. Therefore, is_blocking_read_pipe is also set on the
    signal __SIGNONCYGCHLD, which is sent to the process group when
    non-cygwin app is started.
    
    Backported-from: c7fe29f5cb (Cygwin: pipe: Restore blocking mode of read pipe on close()/raw_read(), 2024-09-06)
    Addresses: git-for-windows/git#5115
    Fixes: fc691d0246b9 ("Cygwin: pipe: Make sure to set read pipe non-blocking for cygwin apps.");
    Reported-by: isaacag, Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>, Ken Brown <kbrown@cornell.edu>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    tyan0 authored and dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    9d0d6e1 View commit details
    Browse the repository at this point in the history
  5. Merge pull request git-for-windows#57 from rglidden/main

    msys2-runtime: restore fast path for current user primary group
    dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    faebbcd View commit details
    Browse the repository at this point in the history
  6. Merge branch 'backports-from-cygwin-3_5-branch'

    This includes the pull request git-for-windows#72 from
    dscho/restore-pipes-blocking-mode, and adds two more backported patches.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    1e8cf1a View commit details
    Browse the repository at this point in the history