glibc/stdio-common
Adhemerval Zanella e0d2eb5a79 linux: Implement tmpfile with O_TMPFILE (BZ#21530)
This patch adds O_TMPFILE support to tmpfile on Linux.  This is
similar to the previous suggestion by Andreas Schwab [1] with the
difference the file descriptor creation is parameterized to
compartmentalize Linux only open flags (O_TMPFILE) on sysdeps.

Checked on x86_64-linux-gnu.

	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
	Andreas Schwab  <schwab@suse.de>

	[BZ #21530]
	* include/stdio.h (__gen_tempfd): New function.
	* stdio-common/Makefile (routines): Add gentempfd.
	* stdio-common/gentempfd.c: New file.
	* sysdeps/unix/sysv/linux/gentempfd.c: Likewise.
	* stdio-common/tmpfile.c (tmpfile): First try to use a system specific
	unnamed file first.

[1] https://sourceware.org/ml/libc-alpha/2017-06/msg01293.html
2017-09-01 09:52:47 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_i18n_number.h _i18n_number_rewrite: Use struct scratch_buffer 2017-06-29 09:34:45 +02:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
asprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bug1.c
bug1.input
bug2.c
bug3.c
bug4.c
bug5.c
bug6.c
bug6.input
bug7.c
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c
bug14.c
bug16.c
bug17.c
bug18.c
bug18a.c
bug19.c
bug19a.c
bug20.c
bug21.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
bug22.c
bug23-2.c
bug23-3.c
bug23-4.c
bug23.c
bug24.c
bug25.c Another round of inclusion fixes for _ISOMAC testsuite. 2017-03-22 08:44:32 -04:00
bug26.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Depend
dprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
errlist.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fxprintf.c getopt: clean up error reporting 2017-04-07 07:48:57 -04:00
gentempfd.c linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
getline.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getw.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_fscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_scanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vfscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vsscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
perror.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf_fp.c stdio-common: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
printf_fphex.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf_size.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf-parse.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf-parsemb.c float128: Add strfromf128 2017-06-07 17:08:21 -03:00
printf-parsewc.c
printf-prs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
psiginfo-data.h
psiginfo-define.h
psiginfo.c Consolidate non cancellable write call 2017-08-18 10:53:47 -03:00
psignal.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
reg-printf.c Hide internal printf functions [BZ #18822/21986] 2017-08-22 07:50:57 -07:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
renameat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf5.c
scanf7.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf8.c
scanf9.c
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
scanf12.c
scanf12.input
scanf13.c
scanf14.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf15.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf16.c
scanf17.c Don't include <bits/stdio-lock.h> from installed <libio.h>. 2015-09-03 20:24:54 +00:00
scanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
siglist.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
snprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stdio_lim.h.in Remove __need_IOV_MAX and __need_FOPEN_MAX. 2017-06-14 07:51:30 -04:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
temptest.c
test_rdwr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-fseek.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-fwrite.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
test-popen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-vfprintf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tfformat.c
tiformat.c
tllformat.c
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tmpfile.c linux: Implement tmpfile with O_TMPFILE (BZ#21530) 2017-09-01 09:52:47 -03:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-cookie.c
tst-fdopen.c
tst-ferror.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-ferror.input
tst-fgets.c
tst-fileno.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen2.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-fmemopen3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen4.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fphex.c
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-fwrite.c
tst-gets.c Clean up conditionals for declaration of gets. 2017-02-25 09:47:51 -05:00
tst-gets.input
tst-grouping.c
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-obprintf.c
tst-perror.c
tst-popen2.c
tst-popen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-printf.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-printfsz.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-rndseek.c
tst-setvbuf1.c
tst-setvbuf1.expect
tst-sprintf2.c
tst-sprintf3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-sprintf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-swprintf.c
tst-swscanf.c
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-unbputc.c
tst-unbputc.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-ungetc.c
tst-unlockedio.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-vfprintf-mbs-prec.c vfprintf: Add test case for multi-byte/wide strings and precision 2017-06-29 09:33:44 +02:00
tst-vfprintf-user-type.c vfprintf: Fix tst-vfprintf-mbs-prec and tst-vfprintf-user-type 2017-06-29 16:46:03 +02:00
tst-vfprintf-width-prec.c Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-wc-printf.c
tstdiomisc.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tstgetln.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tstscanf.input
Versions Fix crypt snprintf namespace (bug 20829). 2016-11-16 22:46:48 +00:00
vfprintf.c stdio-common: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
vfscanf.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
vfwprintf.c
vfwscanf.c
vprintf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xbug.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00