[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18238: Fix for DOS build when using more accurate config[.h].in
From: |
Stefan Kangas |
Subject: |
bug#18238: Fix for DOS build when using more accurate config[.h].in |
Date: |
Fri, 22 Oct 2021 15:02:17 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Reuben Thomas <rrt@sc3d.org> writes:
> DJGPP does actually have getrlimit. The special config[.h].in for MSDOS lies
> and says it hasn't. However, this is a white lie, because
> getrlimit on DJGPP doesn't support RLIMIT_AS/RLIMIT_DATA, which is what we
> want, so we still want the workaround code. The following
> patch simply reverses the order of a couple of tests in vm-limit.c so that
> being on MSDOS overrides HAVE_GETRLIMIT.
>
> Is it OK to install?
(That was in 2014.)
It seems like this patch was never installed. Is it still relevant?
> === modified file 'src/vm-limit.c'
> --- src/vm-limit.c 2014-07-11 10:09:51 +0000
> +++ src/vm-limit.c 2014-08-10 16:44:24 +0000
> @@ -71,7 +71,27 @@
> /* Number of bytes of writable memory we can expect to be able to get. */
> static size_t lim_data;
>
>
> -#ifdef HAVE_GETRLIMIT
> +#ifdef MSDOS
> +
> +void
> +get_lim_data (void)
> +{
> + unsigned long totalram, freeram, totalswap, freeswap;
> +
> + dos_memory_info (&totalram, &freeram, &totalswap, &freeswap);
> + lim_data = freeram;
> + /* Don't believe they will give us more that 0.5 GB. */
> + if (lim_data > 512U * 1024U * 1024U)
> + lim_data = 512U * 1024U * 1024U;
> +}
> +
> +unsigned long
> +ret_lim_data (void)
> +{
> + get_lim_data ();
> + return lim_data;
> +}
> +#elif defined HAVE_GETRLIMIT
>
> # ifndef RLIMIT_AS
> # define RLIMIT_AS RLIMIT_DATA
> @@ -101,26 +121,6 @@
> lim_data = reserved_heap_size;
> }
>
> -#elif defined MSDOS
> -
> -void
> -get_lim_data (void)
> -{
> - unsigned long totalram, freeram, totalswap, freeswap;
> -
> - dos_memory_info (&totalram, &freeram, &totalswap, &freeswap);
> - lim_data = freeram;
> - /* Don't believe they will give us more that 0.5 GB. */
> - if (lim_data > 512U * 1024U * 1024U)
> - lim_data = 512U * 1024U * 1024U;
> -}
> -
> -unsigned long
> -ret_lim_data (void)
> -{
> - get_lim_data ();
> - return lim_data;
> -}
> #else
> # error "get_lim_data not implemented on this machine"
> #endif
- bug#18238: Fix for DOS build when using more accurate config[.h].in,
Stefan Kangas <=