Makefile 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. # The`long double' type is a distinct type we support if
  2. # -mlong-double-128 option is used (or when it becomes a default
  3. # when -mlong-double-64 is not used).
  4. long-double-fcts = yes
  5. ifeq (,$(filter -mlong-double-128,$(sysdep-CFLAGS)))
  6. sysdep-CFLAGS += -mlong-double-128
  7. endif
  8. ifeq ($(subdir),math)
  9. libm-routines += s_nexttowardfd
  10. routines += nldbl-compat
  11. extra-libs += libnldbl
  12. libnldbl-calls = \
  13. acos \
  14. acosh \
  15. acospi \
  16. asin \
  17. asinh \
  18. asinpi \
  19. asprintf \
  20. asprintf_chk \
  21. atan \
  22. atan2 \
  23. atan2pi \
  24. atanh \
  25. atanpi \
  26. cabs \
  27. cacos \
  28. cacosh \
  29. canonicalize \
  30. carg \
  31. casin \
  32. casinh \
  33. catan \
  34. catanh \
  35. cbrt \
  36. ccos \
  37. ccosh \
  38. ceil \
  39. cexp \
  40. cimag \
  41. clog \
  42. clog10 \
  43. compoundn \
  44. conj \
  45. copysign \
  46. cos \
  47. cosh \
  48. cospi \
  49. cpow \
  50. cproj \
  51. creal \
  52. csin \
  53. csinh \
  54. csqrt \
  55. ctan \
  56. ctanh \
  57. dadd \
  58. ddiv \
  59. dfma \
  60. dmul \
  61. dprintf \
  62. dprintf_chk \
  63. dsqrt \
  64. dsub \
  65. erf \
  66. erfc \
  67. exp \
  68. exp10m1 \
  69. exp2 \
  70. exp10 \
  71. exp2m1 \
  72. expm1 \
  73. fabs \
  74. fadd \
  75. fdim \
  76. fdiv \
  77. ffma \
  78. finite \
  79. floor \
  80. fma \
  81. fmax \
  82. fmaximum \
  83. fmaximum_mag \
  84. fmaximum_mag_num \
  85. fmaximum_num \
  86. fmaxmag \
  87. fmin \
  88. fminimum \
  89. fminimum_mag \
  90. fminimum_mag_num \
  91. fminimum_num \
  92. fminmag \
  93. fmod \
  94. fmul \
  95. fprintf \
  96. fprintf_chk \
  97. frexp \
  98. fromfp \
  99. fromfpx \
  100. fscanf \
  101. fsqrt \
  102. fsub \
  103. fwprintf \
  104. fwprintf_chk \
  105. fwscanf \
  106. gamma \
  107. getpayload \
  108. hypot \
  109. ilogb \
  110. iovfscanf \
  111. isinf \
  112. isnan \
  113. isoc23_fscanf \
  114. isoc23_fwscanf \
  115. isoc23_scanf \
  116. isoc23_sscanf \
  117. isoc23_swscanf \
  118. isoc23_vfscanf \
  119. isoc23_vfwscanf \
  120. isoc23_vscanf \
  121. isoc23_vsscanf \
  122. isoc23_vswscanf \
  123. isoc23_vwscanf \
  124. isoc23_wscanf \
  125. isoc99_fscanf \
  126. isoc99_fwscanf \
  127. isoc99_scanf \
  128. isoc99_sscanf \
  129. isoc99_swscanf \
  130. isoc99_vfscanf \
  131. isoc99_vfwscanf \
  132. isoc99_vscanf \
  133. isoc99_vsscanf \
  134. isoc99_vswscanf \
  135. isoc99_vwscanf \
  136. isoc99_wscanf \
  137. j0 \
  138. j1 \
  139. jn \
  140. ldexp \
  141. lgamma \
  142. lgamma_r \
  143. llogb \
  144. llrint \
  145. llround \
  146. log \
  147. log2 \
  148. log10 \
  149. log10p1 \
  150. log1p \
  151. log2p1 \
  152. logb \
  153. lrint \
  154. lround \
  155. modf \
  156. nan \
  157. nearbyint \
  158. nextafter \
  159. nextdown \
  160. nexttoward \
  161. nexttowardf \
  162. nextup \
  163. obstack_printf \
  164. obstack_printf_chk \
  165. obstack_vprintf \
  166. obstack_vprintf_chk \
  167. pow \
  168. pown \
  169. powr \
  170. printf \
  171. printf_chk \
  172. printf_fp \
  173. printf_size \
  174. qecvt \
  175. qecvt_r \
  176. qfcvt \
  177. qfcvt_r \
  178. qgcvt \
  179. remainder \
  180. remquo \
  181. rint \
  182. rootn \
  183. round \
  184. roundeven \
  185. rsqrt \
  186. scalb \
  187. scalbln \
  188. scalbn \
  189. scanf \
  190. setpayload \
  191. setpayloadsig \
  192. signbit \
  193. significand \
  194. sin \
  195. sincos \
  196. sinh \
  197. sinpi \
  198. snprintf \
  199. snprintf_chk \
  200. sprintf \
  201. sprintf_chk \
  202. sqrt \
  203. sscanf \
  204. strfmon \
  205. strfmon_l \
  206. strfroml \
  207. strtold \
  208. strtold_l \
  209. strtoldint \
  210. swprintf \
  211. swprintf_chk \
  212. swscanf \
  213. syslog \
  214. syslog_chk \
  215. tan \
  216. tanh \
  217. tanpi \
  218. tgamma \
  219. totalorder \
  220. totalordermag \
  221. trunc \
  222. ufromfp \
  223. ufromfpx \
  224. vasprintf \
  225. vasprintf_chk \
  226. vdprintf \
  227. vdprintf_chk \
  228. vfprintf \
  229. vfprintf_chk \
  230. vfscanf \
  231. vfwprintf \
  232. vfwprintf_chk \
  233. vfwscanf \
  234. vprintf \
  235. vprintf_chk \
  236. vscanf \
  237. vsnprintf \
  238. vsnprintf_chk \
  239. vsprintf \
  240. vsprintf_chk \
  241. vsscanf \
  242. vswprintf \
  243. vswprintf_chk \
  244. vswscanf \
  245. vsyslog \
  246. vsyslog_chk \
  247. vwprintf \
  248. vwprintf_chk \
  249. vwscanf \
  250. wcstold \
  251. wcstold_l \
  252. wcstoldint \
  253. wprintf \
  254. wprintf_chk \
  255. wscanf \
  256. y0 \
  257. y1 \
  258. yn \
  259. # libnldbl-calls
  260. libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
  261. libnldbl-inhibit-o = $(object-suffixes)
  262. libnldbl-static-only-routines = $(libnldbl-routines)
  263. extra-objs += $(addsuffix .oS, $(libnldbl-routines))
  264. CFLAGS-nldbl-acos.c = -fno-builtin-acosl
  265. CFLAGS-nldbl-acosh.c = -fno-builtin-acoshl
  266. CFLAGS-nldbl-acospi.c = -fno-builtin-acospil
  267. CFLAGS-nldbl-asin.c = -fno-builtin-asinl
  268. CFLAGS-nldbl-asinh.c = -fno-builtin-asinhl
  269. CFLAGS-nldbl-asinpi.c = -fno-builtin-asinpil
  270. CFLAGS-nldbl-atan.c = -fno-builtin-atanl
  271. CFLAGS-nldbl-atan2.c = -fno-builtin-atan2l
  272. CFLAGS-nldbl-atan2pi.c = -fno-builtin-atan2pil
  273. CFLAGS-nldbl-atanh.c = -fno-builtin-atanhl
  274. CFLAGS-nldbl-atanpi.c = -fno-builtin-atanpil
  275. CFLAGS-nldbl-cabs.c = -fno-builtin-cabsl
  276. CFLAGS-nldbl-cacos.c = -fno-builtin-cacosl
  277. CFLAGS-nldbl-cacosh.c = -fno-builtin-cacoshl
  278. CFLAGS-nldbl-canonicalize.c = -fno-builtin-canonicalizel
  279. CFLAGS-nldbl-carg.c = -fno-builtin-cargl
  280. CFLAGS-nldbl-casin.c = -fno-builtin-casinl
  281. CFLAGS-nldbl-casinh.c = -fno-builtin-casinhl
  282. CFLAGS-nldbl-catan.c = -fno-builtin-catanl
  283. CFLAGS-nldbl-catanh.c = -fno-builtin-catanhl
  284. CFLAGS-nldbl-cbrt.c = -fno-builtin-cbrtl
  285. CFLAGS-nldbl-ccos.c = -fno-builtin-ccosl
  286. CFLAGS-nldbl-ccosh.c = -fno-builtin-ccoshl
  287. CFLAGS-nldbl-ceil.c = -fno-builtin-ceill
  288. CFLAGS-nldbl-cexp.c = -fno-builtin-cexpl
  289. CFLAGS-nldbl-cimag.c = -fno-builtin-cimagl
  290. CFLAGS-nldbl-clog.c = -fno-builtin-clogl
  291. CFLAGS-nldbl-clog10.c = -fno-builtin-clog10l
  292. CFLAGS-nldbl-compoundn.c = -fno-builtin-compoundnl
  293. CFLAGS-nldbl-conj.c = -fno-builtin-conjl
  294. CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl
  295. CFLAGS-nldbl-cos.c = -fno-builtin-cosl
  296. CFLAGS-nldbl-cosh.c = -fno-builtin-coshl
  297. CFLAGS-nldbl-cospi.c = -fno-builtin-cospil
  298. CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl
  299. CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl
  300. CFLAGS-nldbl-creal.c = -fno-builtin-creall
  301. CFLAGS-nldbl-csin.c = -fno-builtin-csinl
  302. CFLAGS-nldbl-csinh.c = -fno-builtin-csinhl
  303. CFLAGS-nldbl-csqrt.c = -fno-builtin-csqrtl
  304. CFLAGS-nldbl-ctan.c = -fno-builtin-ctanl
  305. CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl
  306. CFLAGS-nldbl-dadd.c = -fno-builtin-daddl
  307. CFLAGS-nldbl-ddiv.c = -fno-builtin-ddivl
  308. CFLAGS-nldbl-dfma.c = -fno-builtin-dfmal
  309. CFLAGS-nldbl-dmul.c = -fno-builtin-dmull
  310. CFLAGS-nldbl-dsqrt.c = -fno-builtin-dsqrtl
  311. CFLAGS-nldbl-dsub.c = -fno-builtin-dsubl
  312. CFLAGS-nldbl-erf.c = -fno-builtin-erfl
  313. CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl
  314. CFLAGS-nldbl-exp.c = -fno-builtin-expl
  315. CFLAGS-nldbl-exp10.c = -fno-builtin-exp10l
  316. CFLAGS-nldbl-exp10m1.c = -fno-builtin-exp10m1l
  317. CFLAGS-nldbl-exp2.c = -fno-builtin-exp2l
  318. CFLAGS-nldbl-exp2m1.c = -fno-builtin-exp2m1l
  319. CFLAGS-nldbl-expm1.c = -fno-builtin-expm1l
  320. CFLAGS-nldbl-fabs.c = -fno-builtin-fabsl
  321. CFLAGS-nldbl-fadd.c = -fno-builtin-faddl
  322. CFLAGS-nldbl-fdim.c = -fno-builtin-fdiml
  323. CFLAGS-nldbl-fdiv.c = -fno-builtin-fdivl
  324. CFLAGS-nldbl-ffma.c = -fno-builtin-ffmal
  325. CFLAGS-nldbl-finite.c = -fno-builtin-finitel
  326. CFLAGS-nldbl-floor.c = -fno-builtin-floorl
  327. CFLAGS-nldbl-fma.c = -fno-builtin-fmal
  328. CFLAGS-nldbl-fmax.c = -fno-builtin-fmaxl
  329. CFLAGS-nldbl-fmaximum.c += -fno-builtin-fmaximuml
  330. CFLAGS-nldbl-fmaximum_mag.c += -fno-builtin-fmaximum_magl
  331. CFLAGS-nldbl-fmaximum_mag_num.c += -fno-builtin-fmaximum_mag_numl
  332. CFLAGS-nldbl-fmaximum_num.c += -fno-builtin-fmaximum_numl
  333. CFLAGS-nldbl-fmaxmag.c = -fno-builtin-fmaxmagl
  334. CFLAGS-nldbl-fmin.c = -fno-builtin-fminl
  335. CFLAGS-nldbl-fminimum.c += -fno-builtin-fminimuml
  336. CFLAGS-nldbl-fminimum_mag.c += -fno-builtin-fminimum_magl
  337. CFLAGS-nldbl-fminimum_mag_num.c += -fno-builtin-fminimum_mag_numl
  338. CFLAGS-nldbl-fminimum_num.c += -fno-builtin-fminimum_numl
  339. CFLAGS-nldbl-fminmag.c = -fno-builtin-fminmagl
  340. CFLAGS-nldbl-fmod.c = -fno-builtin-fmodl
  341. CFLAGS-nldbl-fmul.c = -fno-builtin-fmull
  342. CFLAGS-nldbl-frexp.c = -fno-builtin-frexpl
  343. CFLAGS-nldbl-fromfp.c = -fno-builtin-fromfpl
  344. CFLAGS-nldbl-fromfpx.c = -fno-builtin-fromfpxl
  345. CFLAGS-nldbl-fsqrt.c = -fno-builtin-fsqrtl
  346. CFLAGS-nldbl-fsub.c = -fno-builtin-fsubl
  347. CFLAGS-nldbl-gamma.c = -fno-builtin-gammal
  348. CFLAGS-nldbl-getpayload.c = -fno-builtin-getpayloadl
  349. CFLAGS-nldbl-hypot.c = -fno-builtin-hypotl
  350. CFLAGS-nldbl-ilogb.c = -fno-builtin-ilogbl
  351. CFLAGS-nldbl-isinf.c = -fno-builtin-isinfl
  352. CFLAGS-nldbl-isnan.c = -fno-builtin-isnanl
  353. CFLAGS-nldbl-j0.c = -fno-builtin-j0l
  354. CFLAGS-nldbl-j1.c = -fno-builtin-j1l
  355. CFLAGS-nldbl-jn.c = -fno-builtin-jnl
  356. CFLAGS-nldbl-ldexp.c = -fno-builtin-ldexpl
  357. CFLAGS-nldbl-lgamma.c = -fno-builtin-lgammal
  358. CFLAGS-nldbl-lgamma_r.c = -fno-builtin-lgammal_r
  359. CFLAGS-nldbl-llogb.c = -fno-builtin-llogbl
  360. CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl
  361. CFLAGS-nldbl-llround.c = -fno-builtin-llroundl
  362. CFLAGS-nldbl-log.c = -fno-builtin-logl
  363. CFLAGS-nldbl-log10.c = -fno-builtin-log10l
  364. CFLAGS-nldbl-log10p1.c = -fno-builtin-log10p1l
  365. CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl -fno-builtin-logp1l
  366. CFLAGS-nldbl-log2.c = -fno-builtin-log2l
  367. CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l
  368. CFLAGS-nldbl-logb.c = -fno-builtin-logbl
  369. CFLAGS-nldbl-lrint.c = -fno-builtin-lrintl
  370. CFLAGS-nldbl-lround.c = -fno-builtin-lroundl
  371. CFLAGS-nldbl-modf.c = -fno-builtin-modfl
  372. CFLAGS-nldbl-nan.c = -fno-builtin-nanl
  373. CFLAGS-nldbl-nearbyint.c = -fno-builtin-nearbyintl
  374. CFLAGS-nldbl-nextafter.c = -fno-builtin-nextafterl
  375. CFLAGS-nldbl-nextdown.c = -fno-builtin-nextdownl
  376. CFLAGS-nldbl-nexttoward.c = -fno-builtin-nexttoward -fno-builtin-nexttowardl
  377. CFLAGS-nldbl-nexttowardf.c = -fno-builtin-nexttowardf
  378. CFLAGS-nldbl-nextup.c = -fno-builtin-nextupl
  379. CFLAGS-nldbl-pow.c = -fno-builtin-powl
  380. CFLAGS-nldbl-pown.c = -fno-builtin-pownl
  381. CFLAGS-nldbl-powr.c = -fno-builtin-powrl
  382. CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl -fno-builtin-dreml
  383. CFLAGS-nldbl-remquo.c = -fno-builtin-remquol
  384. CFLAGS-nldbl-rint.c = -fno-builtin-rintl
  385. CFLAGS-nldbl-rootn.c = -fno-builtin-rootnl
  386. CFLAGS-nldbl-round.c = -fno-builtin-roundl
  387. CFLAGS-nldbl-roundeven.c = -fno-builtin-roundevenl
  388. CFLAGS-nldbl-rsqrt.c = -fno-builtin-rsqrtl
  389. CFLAGS-nldbl-scalb.c = -fno-builtin-scalbl
  390. CFLAGS-nldbl-scalbln.c = -fno-builtin-scalblnl
  391. CFLAGS-nldbl-scalbn.c = -fno-builtin-scalbnl
  392. CFLAGS-nldbl-setpayload.c = -fno-builtin-setpayloadl
  393. CFLAGS-nldbl-setpayloadsig.c = -fno-builtin-setpayloadsigl
  394. CFLAGS-nldbl-significand.c = -fno-builtin-significandl
  395. CFLAGS-nldbl-sin.c = -fno-builtin-sinl
  396. CFLAGS-nldbl-sincos.c = -fno-builtin-sincosl
  397. CFLAGS-nldbl-sinh.c = -fno-builtin-sinhl
  398. CFLAGS-nldbl-sinpi.c = -fno-builtin-sinpil
  399. CFLAGS-nldbl-sqrt.c = -fno-builtin-sqrtl
  400. CFLAGS-nldbl-tan.c = -fno-builtin-tanl
  401. CFLAGS-nldbl-tanh.c = -fno-builtin-tanhl
  402. CFLAGS-nldbl-tanpi.c = -fno-builtin-tanpil
  403. CFLAGS-nldbl-tgamma.c = -fno-builtin-tgammal
  404. CFLAGS-nldbl-totalorder.c = -fno-builtin-totalorderl
  405. CFLAGS-nldbl-totalordermag.c = -fno-builtin-totalordermagl
  406. CFLAGS-nldbl-trunc.c = -fno-builtin-truncl
  407. CFLAGS-nldbl-ufromfp.c = -fno-builtin-ufromfpl
  408. CFLAGS-nldbl-ufromfpx.c = -fno-builtin-ufromfpxl
  409. CFLAGS-nldbl-y0.c = -fno-builtin-y0l
  410. CFLAGS-nldbl-y1.c = -fno-builtin-y1l
  411. CFLAGS-nldbl-yn.c = -fno-builtin-ynl
  412. tests += \
  413. test-narrow-macros-ldbl-64 \
  414. test-nldbl-redirect \
  415. test-redirection-ldbl-64 \
  416. # tests
  417. CFLAGS-test-narrow-macros-ldbl-64.c += -mlong-double-64
  418. CFLAGS-test-nldbl-redirect.c += -mlong-double-64
  419. CFLAGS-test-redirection-ldbl-64.c += -mlong-double-64
  420. $(objpfx)test-nldbl-redirect: $(objpfx)libnldbl_nonshared.a
  421. endif
  422. # Tests for argp.h functions (reusing the relevant tests from argp/)
  423. ifeq ($(subdir),argp)
  424. tests-internal += tst-nldbl-argp
  425. $(objpfx)tst-nldbl-argp.c: tst-ldbl-argp.c
  426. cp $< $@
  427. CFLAGS-tst-nldbl-argp.c += -mlong-double-64
  428. endif
  429. # Tests for err.h and error.h functions (reusing the relevant tests from
  430. # misc/).
  431. ifeq ($(subdir), misc)
  432. tests-internal += tst-nldbl-warn
  433. tests-internal += tst-nldbl-error
  434. tests-internal += tst-nldbl-errorfptr
  435. $(objpfx)tst-nldbl-warn.c: tst-ldbl-warn.c
  436. cp $< $@
  437. $(objpfx)tst-nldbl-error.c: tst-ldbl-error.c
  438. cp $< $@
  439. $(objpfx)tst-nldbl-errorfptr.c: tst-ldbl-errorfptr.c
  440. cp $< $@
  441. CFLAGS-tst-nldbl-warn.c += -mlong-double-64
  442. CFLAGS-tst-nldbl-error.c += -mlong-double-64
  443. CFLAGS-tst-nldbl-errorfptr.c += -mlong-double-64
  444. endif
  445. ifeq ($(subdir), stdio-common)
  446. # We already have the long double conversion defined with our common rules
  447. # for the IEEE binary128 format, so define these special rules to build
  448. # and run extra executables for the IEEE binary64 format, reusing the same
  449. # sources.
  450. define tst-scanf-format-64-tests
  451. test-srcs += \
  452. tst-scanf-format-$(1)-ldouble-64 \
  453. # test-srcs
  454. $$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \
  455. tst-scanf-format-$(1)-ldouble.c $$(before-compile)
  456. $$(compile-command.c)
  457. $$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm)
  458. endef
  459. $(foreach p,$(xscanf-funcs), \
  460. $(eval $(call tst-scanf-format-64-tests,$(p))))
  461. # Use the IEEE binary64 format for long double scanf format tests.
  462. $(foreach suf,$(all-object-suffixes), \
  463. $(foreach p,$(xscanf-funcs), \
  464. $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \
  465. sysdep-CFLAGS += -mlong-double-64
  466. ifeq ($(run-built-tests),yes)
  467. define tst-scanf-format-64-rule
  468. tests-special += \
  469. $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \
  470. # tests-special
  471. $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \
  472. ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \
  473. $$(objpfx)tst-scanf-format-$(1)-ldouble-64
  474. $$(make-tst-scanf-format-out) > $$@ < $$<; \
  475. $$(evaluate-test)
  476. ifeq (yes,$(build-shared))
  477. ifneq ($(PERL),no)
  478. tests-special += \
  479. $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
  480. # tests-special
  481. generated += \
  482. $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
  483. $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \
  484. # generated
  485. endif
  486. endif
  487. endef
  488. $(foreach f,$(fmts-xscanf-real), \
  489. $(foreach p,$(xscanf-funcs), \
  490. $(eval $(call tst-scanf-format-64-rule,$(p),$(f)))))
  491. endif # $(run-built-tests) == yes
  492. tests += \
  493. tst-nldbl-scanf-binary-c11 \
  494. tst-nldbl-scanf-binary-c23 \
  495. tst-nldbl-scanf-binary-gnu11 \
  496. tst-nldbl-scanf-binary-gnu89 \
  497. # tests
  498. # Some versions of GCC supported for building glibc do not support -std=c23
  499. # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
  500. # the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
  501. # the test as needed.
  502. CFLAGS-tst-nldbl-scanf-binary-c11.c += -mlong-double-64 -std=c11 \
  503. -DOBJPFX=\"$(objpfx)\"
  504. CFLAGS-tst-nldbl-scanf-binary-c23.c += -mlong-double-64 -std=c11 \
  505. -DOBJPFX=\"$(objpfx)\"
  506. CFLAGS-tst-nldbl-scanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
  507. -DOBJPFX=\"$(objpfx)\"
  508. CFLAGS-tst-nldbl-scanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
  509. -DOBJPFX=\"$(objpfx)\"
  510. endif # $(subdir) == stdio-common
  511. ifeq ($(subdir), wcsmbs)
  512. tests += \
  513. tst-nldbl-wscanf-binary-c11 \
  514. tst-nldbl-wscanf-binary-c23 \
  515. tst-nldbl-wscanf-binary-gnu11 \
  516. tst-nldbl-wscanf-binary-gnu89 \
  517. # tests
  518. # Some versions of GCC supported for building glibc do not support -std=c23
  519. # (added in GCC 14), or the older name -std=c2x (added in GCC 9), so
  520. # the test for that version uses -std=c11 and then _ISOC23_SOURCE is defined in
  521. # the test as needed.
  522. CFLAGS-tst-nldbl-wscanf-binary-c11.c += -mlong-double-64 -std=c11 \
  523. -DOBJPFX=\"$(objpfx)\"
  524. CFLAGS-tst-nldbl-wscanf-binary-c23.c += -mlong-double-64 -std=c11 \
  525. -DOBJPFX=\"$(objpfx)\"
  526. CFLAGS-tst-nldbl-wscanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
  527. -DOBJPFX=\"$(objpfx)\"
  528. CFLAGS-tst-nldbl-wscanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
  529. -DOBJPFX=\"$(objpfx)\"
  530. endif
  531. routines_no_fortify += \
  532. nldbl-asprintf \
  533. nldbl-dprintf \
  534. nldbl-fprintf \
  535. nldbl-fwprintf \
  536. nldbl-obstack_printf \
  537. nldbl-obstack_vprintf \
  538. nldbl-printf \
  539. nldbl-snprintf \
  540. nldbl-sprintf \
  541. nldbl-swprintf \
  542. nldbl-syslog \
  543. nldbl-vasprintf \
  544. nldbl-vdprintf \
  545. nldbl-vfprintf \
  546. nldbl-vfwprintf \
  547. nldbl-vprintf \
  548. nldbl-vsnprintf \
  549. nldbl-vsprintf \
  550. nldbl-vswprintf \
  551. nldbl-vsyslog \
  552. nldbl-vwprintf \
  553. nldbl-wprintf \
  554. # routines_no_fortify
  555. # We can't rely on Makeconfig here for whatever reason
  556. CFLAGS-.oS += $(call elide-fortify-source,.oS,$(routines_no_fortify))
  557. CFLAGS-.oS += $(call elide-fortify-source,_chk.oS,$(routines_no_fortify))