Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sbin/newfs
Taylor R Campbell <campbell+netbsd-source-changes-d%mumble.net@localhost> writes:
> Well, what happened is:
>
> 1. I was drafting posix_memalign and aligned_alloc for libbsdmalloc in
> response to the thread about static program size yesterday, and
> carefully reading the specs -- POSIX 2018, C11 -- to make sure I
> got all the details right.
>
> 2. I saw a silly restriction in C11, that aligned_alloc(A, S) requires
> A to divide S.
>
> 3. For the sake of encouraging portable code, I figured we should
> enforce that restriction, so I went ahead and did that in both the
> libbsdmalloc front end I was writing and in jemalloc. (This caused
> a bunch of tests to start failing.)
>
> 4. I audited all the uses of aligned_alloc in tree to make sury they
> meet the restriction (which fixed the tests).
>
> 5. Someone pointed out that the silly restriction that was imposed in
> C11 had actually been lifted in C17:
>
> (C11) The value of alignment shall be a valid alignment
> supported by the implementation and the value of size shall be
> an integral multiple of alignment.
>
> (C17) If the value of alignment is not a valid alignment
> supported by the implementation the function shall fail by
> returning a null pointer.
>
> 6. So I reverted the jemalloc enforcement of the C11 restriction, and
> reverted the fixes made to conform to it, and removed the
> restriction in the new libbsdmalloc code, and we're more or less
> back to where we started.
>
> Except I am now reminded that I updated t_posix_memalign.c to verify
> this silly restriction of aligned_alloc, so I'd better go fix that
> before a bunch of tests start failing again!
Thanks for taking the time to explain so thoroughly. So we are back to
status quo ante-fixum, which is by definition always ok :-)
Home |
Main Index |
Thread Index |
Old Index