Sorry. I made a typo. Of course It's a runtime error. Requirements: * uClibc-ng with disabled option "Enable SuSv2 LEGACY functions" (UCLIBC_SUSV2_LEGACY symbol).
Test progam: $ cat test_valloc.c #include <stdlib.h> int main(int argc, char *argv[]) { void *p; p = valloc(1); if (p == NULL) return EXIT_FAILURE; free(p); return EXIT_SUCCESS; } The program above compiles without problems because of declaration in "stdio.h", but it segfaults in runtime: $ ./test_valloc Segmentation fault Definition of valloc also depends from UCLIBC_SUSV2_LEGACY (libc/stdlib/Makefile.in): CSRC-$(UCLIBC_SUSV2_LEGACY) += valloc.c The patch transforms the issue to compile time error. On Mon, Jul 24, 2017 at 11:29 PM, Waldemar Brodkorb <w...@uclibc-ng.org> wrote: > Hi Eugene, > Eugene Yudin wrote, > > > Hi, > > > > Current uClibc-ng have issue with several different valloc declarations. > > > > malloc.h: > > #ifdef __UCLIBC_SUSV2_LEGACY__ > > /* Allocate SIZE bytes on a page boundary. */ > > extern __malloc_ptr_t valloc __MALLOC_P ((size_t __size)) > __attribute_malloc__; > > #endif > > > > stdlib.h: > > #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED > > /* Allocate SIZE bytes on a page boundary. The storage cannot be > freed. */ > > extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur; > > #endif > > > > The second declaration doesn't use the define __UCLIBC_SUSV2_LEGACY__. > > That leads to compile time problems. > > Can you explain in which situations this leads to compile time > problems? > > best regards > Waldemar > -- С уважением, Евгений Юдин
_______________________________________________ devel mailing list devel@uclibc-ng.org https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel