X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com X-Virus-Scanned: Debian amavisd-new at medvecky.net X-Spam-Flag: NO X-Spam-Score: -2.823 X-Spam-Level: X-Spam-Status: No, score=-2.823 tagged_above=-999 required=3.8 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, TW_CR=0.077] autolearn=ham Subject: Re: valloc() returns NULL for larger requests, but malloc works fine To: djgpp AT delorie DOT com, andrewwu DOT tw AT gmail DOT com References: <3459b672-8f4d-9840-5a01-246db011ed06 AT assembler DOT cz> <6a051ffc-c379-8b88-76ed-26e938107c68 AT iki DOT fi> From: "Rudolf Marek (r DOT marek AT assembler DOT cz) [via djgpp AT delorie DOT com]" Message-ID: Date: Fri, 29 Dec 2017 22:26:18 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <6a051ffc-c379-8b88-76ed-26e938107c68@iki.fi> Content-Type: text/plain; charset=iso-8859-2 Content-Language: en-US Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id vBTLQpam002081 Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk Hi Andris, Thanks for the pointers. I tried to recompile the libc with that patch you mentioned and it fixes the issue. For flashrom, I developed a workaround, so the users will not be affected. Now, how to get the official DJGPP fixed? Thanks Rudolf Dne 29.12.2017 v 16:37 Andris Pavenis (andris DOT pavenis AT iki DOT fi) [via djgpp AT delorie DOT com] napsal(a): > > > On 29.12.2017 14:39, Rudolf Marek (r DOT marek AT assembler DOT cz) [via djgpp AT delorie DOT com] wrote: >> Hi, >> >> I was testing the flashrom DOS port before new release, and it turns out >> there is something wrong with the valloc(). It refuses to allocate larger >> areas, but malloc with same size works fine. The very same code was working fine with the 2.04 from 2009. > > 1) I tried cross-compiler under ArchLinux (my own versions I should sometime commit to aur.archlinux.org to update versions already there). No failures observed when I run cross-compiled exe file in Win 10 32-bit VM (the same I'm using for building native compiler packages for ftp.delorie.com) > > 2) recompiled it Win 10 32-bit VM and observed similar behavior as described in report > > ArchLinux build has additional probably related patch: > https://aur.archlinux.org/cgit/aur.git/tree/nmemalign.patch?h=djgpp-djcrx > > I kept the changes (except gcc version compatibility fixes which I replaced) in my new not yet submitted version > > Andris > >> I performed my experiment with following rpms installed: >> >> djcross-binutils-2.29.1-1ap.x86_64.rpm >> djcross-gcc-7.2.0-1ap.x86_64.rpm >> djcrx-2.05-5.x86_64.rpm >> >> #include >> #include >> #include >> >> int main(void) >> { >>     printf("VALLOC %lx\n", valloc(1024*1024)); /* Fails with 0 */ >>     printf("MALLOC %lx\n", malloc(1024)); /* Works fine */ >>     printf("MALLOC %lx\n", malloc(1024*1024)); /* Works fine */ >>     printf("VALLOC %lx\n", valloc(1024)); /* Fails with 0 */ >>     printf("MEMALIGN %lx\n", memalign(4096, 1024)); /* Fails with 0 */ >>     printf("MEMALIGN %lx\n", memalign(64, 1024)); /* Fails with 0 */ >>     printf("MEMALIGN %lx\n", memalign(32, 64)); /* Works fine */ >> } >> >> I suspect something went wrong with memalign() internally, as for larger allocations it does some advanced trickery. >> >> Thanks >> Rudolf >> >