i looked into this again (mainly from a linux perspective), here is what i have found out:
following functions are not in c99: - strdup (posix, all over the place, easily replaceable) - getpagesize (alternatives: http://en.wikipedia.org/wiki/Page_(computer_memory)#Determining_the_page_size_in_a_program - strcasecmp, strncasecmp (posix) - popen/pclose (posix, will be gone with internal dmi decoder) - usleep (posix, and even there deprecated!) - gethostbyname et al (posix, serprog only) also, struct hostent->h_addr should be h_addr_list[0] - fileno (posix, used in flashrom.c) the termios flag CRTSCTS is not specified in c or posix (bsd, used in serial.c's sp_openserport) and then there is the __asm__ __volatile__ thingy. not too bad imho. it gets worse with -pedantic of course... - unnamed unions (which became part of c11) - empty struct initializers ({}, mostly fixed by using {0} although gcc and clang continue to warn if there are substructs. this would lead to things like {{{{{0}}}}} in some cases and that's just not worth it.) - 0-sized arrays (coreboot_tables.h, wtf?) - lots of: pointer of type ‘void *’ used in arithmetic (mmio functions/macros) i have fixed the h_addr and __asm__ __volatile__ problem and also replaced all empty struct initializers with {0} as this is the standard 0/NULL initializer (as discussed in the -p internal:mainboard= thread IIRC) in my tested_stuff branch. -- Kind regards/Mit freundlichen Grüßen, Stefan Tauner _______________________________________________ flashrom mailing list [email protected] http://www.flashrom.org/mailman/listinfo/flashrom
