[package - 140i386-default][science/hdf] Failed for hdf-4.2.15_4,1 in build
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 25 Feb 2024 05:44:59 UTC
You are receiving this mail as a port that you maintain is failing to build on the FreeBSD package build server. Please investigate the failure and submit a PR to fix build. Maintainer: ports@FreeBSD.org Log URL: https://pkg-status.freebsd.org/beefy11/data/140i386-default/5d5d54cd608d/logs/hdf-4.2.15_4,1.log Build URL: https://pkg-status.freebsd.org/beefy11/build.html?mastername=140i386-default&build=5d5d54cd608d Log: =>> Building science/hdf build started at Sun Feb 25 05:43:44 UTC 2024 port directory: /usr/ports/science/hdf package name: hdf-4.2.15_4,1 building for: FreeBSD 140i386-default-job-05 14.0-RELEASE-p5 FreeBSD 14.0-RELEASE-p5 i386 maintained by: ports@FreeBSD.org Makefile datestamp: -rw-r--r-- 1 root wheel 1639 Jan 11 01:01 /usr/ports/science/hdf/Makefile Ports top last git commit: 5d5d54cd60 Ports top unclean checkout: no Port dir last git commit: e10e2022a9 Port dir unclean checkout: no Poudriere version: poudriere-git-3.4.1-1-g1e9f97d6 Host OSVERSION: 1500006 Jail OSVERSION: 1400097 Job Id: 05 ---Begin Environment--- SHELL=/bin/sh BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 OSVERSION=1400097 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin MAKE_OBJDIR_CHECK_WRITABLE=0 UNAME_m=i386 UNAME_p=i386 UNAME_r=14.0-RELEASE-p5 LOCALBASE=/usr/local UNAME_v=FreeBSD 14.0-RELEASE-p5 USER=root POUDRIERE_NAME=poudriere-git LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.4.1-1-g1e9f97d6 MASTERMNT=/usr/local/poudriere/data/.m/140i386-default/ref LC_COLLATE=C POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM= OUTPUT_REDIRECTED_STDERR=4 OUTPUT_REDIRECTED=1 PWD=/usr/local/poudriere/data/.m/140i386-default/05/.p OUTPUT_REDIRECTED_STDOUT=3 P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS MASTERNAME=140i386-default SCRIPTPREFIX=/usr/local/share/poudriere SCRIPTNAME=bulk.sh OLDPWD=/usr/local/poudriere/data/.m/140i386-default/ref/.p/pool POUDRIERE_PKGNAME=poudriere-git-3.4.1-1-g1e9f97d6 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for hdf-4.2.15_4,1: EXAMPLES=on: Build and/or install examples ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- ports@FreeBSD.org --End MAINTAINER-- --CONFIGURE_ARGS-- --enable-shared --with-jpeg=/usr/local --with-szlib=/usr/local --prefix=/usr/local ${_LATE_CONFIGURE_ARGS} --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- F77="gfortran12" F90="gfortran12" FC="gfortran12" FFLAGS="-O -Wl,-rpath=/usr/local/lib/gcc12 -fallow-argument-mismatch" F90FLAGS="-O -Wl,-rpath=/usr/local/lib/gcc12 -fallow-argument-mismatch" FCFLAGS="-Wl,-rpath=/usr/local/lib/gcc12" XDG_DATA_HOME=/wrkdirs/usr/ports/science/hdf/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/science/hdf/work XDG_CACHE_HOME=/wrkdirs/usr/ports/science/hdf/work/.cache HOME=/wrkdirs/usr/ports/science/hdf/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/science/hdf/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/science/hdf/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local/bin/objcopy" OBJDUMP="/usr/lo cal/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=524288 --End CONFIGURE_ENV-- --MAKE_ENV-- F77="gfortran12" F90="gfortran12" FC="gfortran12" FFLAGS="-O -Wl,-rpath=/usr/local/lib/gcc12 -fallow-argument-mismatch" F90FLAGS="-O -Wl,-rpath=/usr/local/lib/gcc12 -fallow-argument-mismatch" FCFLAGS="-Wl,-rpath=/usr/local/lib/gcc12" XDG_DATA_HOME=/wrkdirs/usr/ports/science/hdf/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/science/hdf/work XDG_CACHE_HOME=/wrkdirs/usr/ports/science/hdf/work/.cache HOME=/wrkdirs/usr/ports/science/hdf/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/science/hdf/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/science/hdf/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local /bin/objcopy" OBJDUMP="/usr/local/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" PREFIX=/usr/local LOCALBASE=/usr/local CC="cc" CFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " CPP="cpp" CPPFLAGS="" LDFLAGS=" -Wl,-rpath=/usr/local/lib/gcc12 -L/usr/local/lib/gcc12 -fstack-protector-strong " LIBS="" CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- PORTEXAMPLES="" OSREL=14.0 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/hdf" EXAMPLESDIR="share/examples/hdf" DATADIR="share/hdf" WWWDIR="www/hdf" ETCDIR="etc/hdf" --End PLIST_SUB-- --SUB_LIST-- PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/hdf DOCSDIR=/usr/local/share/doc/hdf EXAMPLESDIR=/usr/local/share/examples/hdf WWWDIR=/usr/local/www/hdf ETCDIR=/usr/local/etc/hdf --End SUB_LIST-- ---Begin make.conf--- USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes MACHINE=i386 MACHINE_ARCH=i386 ARCH=${MACHINE_ARCH} #### #### # XXX: We really need this but cannot use it while 'make checksum' does not # try the next mirror on checksum failure. It currently retries the same # failed mirror and then fails rather then trying another. It *does* # try the next if the size is mismatched though. #MASTER_SITE_FREEBSD=yes # Build ALLOW_MAKE_JOBS_PACKAGES with 3 jobs MAKE_JOBS_NUMBER=3 #### Misc Poudriere #### .include "/etc/make.conf.ports_env" GID=0 UID=0 ---End make.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 524288 stack size (kbytes, -s) 65536 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 8192 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited --End resource limits-- =======================<phase: check-sanity >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The hdf port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing =========================================================================== =======================<phase: pkg-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> hdf-4.2.15_4,1 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.20.9_1.pkg [140i386-default-job-05] Installing pkg-1.20.9_1... [140i386-default-job-05] Extracting pkg-1.20.9_1: .......... done ===> hdf-4.2.15_4,1 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of hdf-4.2.15_4,1 =========================================================================== =======================<phase: fetch-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =======================<phase: fetch >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The hdf port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> Fetching all distfiles required by hdf-4.2.15_4,1 for building =========================================================================== =======================<phase: checksum >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> NOTICE: The hdf port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> Fetching all distfiles required by hdf-4.2.15_4,1 for building => SHA256 Checksum OK for hdf-4.2.15.tar.gz. =========================================================================== =======================<phase: extract-depends>============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =======================<phase: extract >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 <snip> # define nscwchnk H4_F77_FUNC(scwchnk, SCWCHNK) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:244:1: note: expanded from here scwchnk_ ^ ../../mfhdf/fortran/mfsdf.c:2567:8: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscwcchnk(id, start, char_data) ^ ../../mfhdf/fortran/mfsdf.h:78:26: note: expanded from macro 'nscwcchnk' # define nscwcchnk H4_F77_FUNC(scwcchnk, SCWCCHNK) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:245:1: note: expanded from here scwcchnk_ ^ ../../mfhdf/fortran/mfsdf.c:2606:8: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscscompress( id, comp_type, comp_prm) ^ ../../mfhdf/fortran/mfsdf.h:80:26: note: expanded from macro 'nscscompress' # define nscscompress H4_F77_FUNC(scscompress, SCSCOMPRESS) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:247:1: note: expanded from here scscompress_ ^ ../../mfhdf/fortran/mfsdf.c:2694:8: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgcompress( id, comp_type, comp_prm) ^ ../../mfhdf/fortran/mfsdf.h:81:26: note: expanded from macro 'nscgcompress' # define nscgcompress H4_F77_FUNC(scgcompress, SCGCOMPRESS) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:248:1: note: expanded from here scgcompress_ ^ ../../mfhdf/fortran/mfsdf.c:2776:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nsfisrcrd(id) ^ ../../mfhdf/fortran/mfsdf.h:72:26: note: expanded from macro 'nsfisrcrd' # define nsfisrcrd H4_F77_FUNC(sfisrcrd, SFISRCRD) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:249:1: note: expanded from here sfisrcrd_ ^ ../../mfhdf/fortran/mfsdf.c:2794:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nsfsblsz(id, block_size) ^ ../../mfhdf/fortran/mfsdf.h:83:26: note: expanded from macro 'nsfsblsz' # define nsfsblsz H4_F77_FUNC(sfsblsz, SFSBLSZ) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:250:1: note: expanded from here sfsblsz_ ^ ../../mfhdf/fortran/mfsdf.c:2813:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscchempty(id, flag) ^ ../../mfhdf/fortran/mfsdf.h:84:26: note: expanded from macro 'nscchempty' # define nscchempty H4_F77_FUNC(scchempty, SCCHEMPTY) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:251:1: note: expanded from here scchempty_ ^ ../../mfhdf/fortran/mfsdf.c:2837:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgetfname(file_id, name, namelen) ^ ../../mfhdf/fortran/mfsdf.h:85:26: note: expanded from macro 'nscgetfname' # define nscgetfname H4_F77_FUNC(scgetfname,SCGETFNAME) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:252:1: note: expanded from here scgetfname_ ^ ../../mfhdf/fortran/mfsdf.c:2869:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgetnamelen(obj_id, namelen) ^ ../../mfhdf/fortran/mfsdf.h:86:26: note: expanded from macro 'nscgetnamelen' # define nscgetnamelen H4_F77_FUNC(scgetnamelen,SCGETNAMELEN) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:253:1: note: expanded from here scgetnamelen_ ^ ../../mfhdf/fortran/mfsdf.c:2898:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscidtype(obj_id, obj_type) ^ ../../mfhdf/fortran/mfsdf.h:87:26: note: expanded from macro 'nscidtype' # define nscidtype H4_F77_FUNC(scidtype,SCIDTYPE) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:254:1: note: expanded from here scidtype_ ^ ../../mfhdf/fortran/mfsdf.c:2924:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscrmaxopenf(req_max) ^ ../../mfhdf/fortran/mfsdf.h:92:26: note: expanded from macro 'nscrmaxopenf' # define nscrmaxopenf H4_F77_FUNC(scrmaxopenf,SCRMAXOPENF) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:255:1: note: expanded from here scrmaxopenf_ ^ ../../mfhdf/fortran/mfsdf.c:2946:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgmaxopenf(cur_max, sys_limit) ^ ../../mfhdf/fortran/mfsdf.h:90:26: note: expanded from macro 'nscgmaxopenf' # define nscgmaxopenf H4_F77_FUNC(scgmaxopenf,SCGMAXOPENF) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:256:1: note: expanded from here scgmaxopenf_ ^ ../../mfhdf/fortran/mfsdf.c:2972:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgnumopenf(cur_num) ^ ../../mfhdf/fortran/mfsdf.h:91:26: note: expanded from macro 'nscgnumopenf' # define nscgnumopenf H4_F77_FUNC(scgnumopenf,SCGNUMOPENF) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:257:1: note: expanded from here scgnumopenf_ ^ ../../mfhdf/fortran/mfsdf.c:3002:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscn2indices(sd_id, name, namelen, var_list, type_list, n_vars) ^ ../../mfhdf/fortran/mfsdf.h:89:26: note: expanded from macro 'nscn2indices' # define nscn2indices H4_F77_FUNC(scn2indices,SCN2INDICES) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:258:1: note: expanded from here scn2indices_ ^ ../../mfhdf/fortran/mfsdf.c:3048:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] nscgnvars_byname(sd_id, name, namelen, n_vars) ^ ../../mfhdf/fortran/mfsdf.h:88:29: note: expanded from macro 'nscgnvars_byname' # define nscgnvars_byname H4_F77_FUNC(scgnvars_byname,SCGNVARS_BYNAME) ^ ../../hdf/src/h4config.h:16:32: note: expanded from macro 'H4_F77_FUNC' #define H4_F77_FUNC(name,NAME) name ## _ ^ <scratch space>:259:1: note: expanded from here scgnvars_byname_ ^ --- jackets.lo --- 48 warnings generated. libtool: compile: cc -DHAVE_CONFIG_H -I. -I../../hdf/src -I../../hdf/src -I../../mfhdf/libsrc -DNDEBUG -DHDF -I/usr/local/include -I/usr/local/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -ansi -MT jackets.lo -MD -MP -MF .deps/jackets.Tpo -c ../../mfhdf/fortran/jackets.c -o jackets.o >/dev/null 2>&1 --- mfsdf.lo --- 78 warnings generated. libtool: compile: cc -DHAVE_CONFIG_H -I. -I../../hdf/src -I../../hdf/src -I../../mfhdf/libsrc -DNDEBUG -DHDF -I/usr/local/include -I/usr/local/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -ansi -MT mfsdf.lo -MD -MP -MF .deps/mfsdf.Tpo -c ../../mfhdf/fortran/mfsdf.c -o mfsdf.o >/dev/null 2>&1 --- jackets.lo --- mv -f .deps/jackets.Tpo .deps/jackets.Plo --- mfsdf.lo --- mv -f .deps/mfsdf.Tpo .deps/mfsdf.Plo 1 error make[3]: stopped in /wrkdirs/usr/ports/science/hdf/work/hdf-4.2.15/mfhdf/libsrc make[2]: stopped in /wrkdirs/usr/ports/science/hdf/work/hdf-4.2.15/mfhdf make[1]: stopped in /wrkdirs/usr/ports/science/hdf/work/hdf-4.2.15 ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/science/hdf