Date: Fri, 29 Apr 2022 14:54:17 -0700 From: Mark Millard <marklmi@yahoo.com> To: sgk@troutmask.apl.washington.edu Cc: freebsd-current <freebsd-current@freebsd.org> Subject: Re: Profiled libraries on freebsd-current Message-ID: <54761641-8AD3-44A6-8620-F1341ED9AB56@yahoo.com> In-Reply-To: <YmxGyaP40bR6jq8v@troutmask.apl.washington.edu> References: <B1FD9D1B-EE31-4114-8F05-E249283A2408@yahoo.com> <CDB73C3B-B56C-4C17-857D-EB56BEC3E323@yahoo.com> <YmxGyaP40bR6jq8v@troutmask.apl.washington.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2022-Apr-29, at 13:12, Steve Kargl <sgk@troutmask.apl.washington.edu> = wrote: > On Fri, Apr 29, 2022 at 12:51:12PM -0700, Mark Millard wrote: >> On 2022-Apr-29, at 12:38, Mark Millard <marklmi@yahoo.com> wrote: >>=20 >>> = https://cgit.freebsd.org/src/commit/?id=3D175841285e289edebb6603da39f02549= 521ce950 >>> says the following (later), but first I quote the part tbat dirves = the >>> interpretation: >>>=20 >>> QUOTE >>> Clang's -pg support and mcount() remain, so building with -pg can = still >>> be used on code that the user builds; we just do not provide = prebuilt >>> libraries compiled with -pg. >>> END QUOTE >>>=20 >>> No WITH_PROFILE options means no "prebuilt libraries compiled with = -pg". >>>=20 >>>=20 >>> The overall notice was: >>>=20 >>> author Ed Maste <emaste@FreeBSD.org> 2021-06-27 17:21:26 = +0000 >>> committer Ed Maste <emaste@FreeBSD.org> 2021-06-28 15:36:59 = +0000 >>> commit 175841285e289edebb6603da39f02549521ce950 (patch) >>> tree 9c2d3b05546961457bb18faeebd2302a25559b49 >>> parent 243b95978debac3db06df6d26ca9f8d84f6cbd83 (diff) >>> download src-175841285e289edebb6603da39f02549521ce950.tar.gz >>> src-175841285e289edebb6603da39f02549521ce950.zip >>>=20 >>> Add deprecation notice for WITH_PROFILE option >>>=20 >>> As discussed on freebsd-current [1] and freebsd-arch [2] and review >>> D30833, FreeBSD 14 will ship without the _p.a libraries built with = -pg. >>> Both upstream and base system (in commit b762974cf4b9) Clang have = been >>> modified to remove the special case for linking against these = libraries. >>>=20 >>> Clang's -pg support and mcount() remain, so building with -pg can = still >>> be used on code that the user builds; we just do not provide = prebuilt >>> libraries compiled with -pg. A similar change is still needed for = GCC. >>>=20 >>> [1] =20 >>> = https://lists.freebsd.org/pipermail/freebsd-current/2020-January/075105.ht= ml >>>=20 >>> [2]=20 >>> = https://lists.freebsd.org/archives/freebsd-arch/2021-June/000016.html >>>=20 >>>=20 >>> MFC after: 1 week >>> Sponsored by: The FreeBSD Foundation >>> END QUOTE >>>=20 >>=20 >> I probably should have been explicit: the actual removal of = WITH_PROFILE >> has not happened yet. So testing attempts to use it are not yet = expected >> to have the new behavior yet. >>=20 >=20 > The evenual absence of libc_p.a and libm_p.a will break GCC's > -pg option in GCC. One will then need to know how to change the > GCC source or install symlinks for to point *_p.a a the *.a libs. >=20 src/tree/tools/build/mk/OptionalObsoleteFiles.inc shows the following that does include those 2 files as ones considered obsolete (i.e., to be removed) by WITHOUT_PROFILE: .if ${MK_PROFILE} =3D=3D no OLD_FILES+=3Dusr/lib/lib80211_p.a OLD_FILES+=3Dusr/lib/lib9p_p.a OLD_FILES+=3Dusr/lib/libBlocksRuntime_p.a OLD_FILES+=3Dusr/lib/libalias_dummy_p.a OLD_FILES+=3Dusr/lib/libalias_ftp_p.a OLD_FILES+=3Dusr/lib/libalias_irc_p.a OLD_FILES+=3Dusr/lib/libalias_nbt_p.a OLD_FILES+=3Dusr/lib/libalias_p.a OLD_FILES+=3Dusr/lib/libalias_pptp_p.a OLD_FILES+=3Dusr/lib/libalias_skinny_p.a OLD_FILES+=3Dusr/lib/libalias_smedia_p.a OLD_FILES+=3Dusr/lib/libarchive_p.a OLD_FILES+=3Dusr/lib/libasn1_p.a OLD_FILES+=3Dusr/lib/libauditd_p.a OLD_FILES+=3Dusr/lib/libavl_p.a OLD_FILES+=3Dusr/lib/libbe_p.a OLD_FILES+=3Dusr/lib/libbegemot_p.a OLD_FILES+=3Dusr/lib/libblacklist_p.a OLD_FILES+=3Dusr/lib/libbluetooth_p.a OLD_FILES+=3Dusr/lib/libbsdxml_p.a OLD_FILES+=3Dusr/lib/libbsm_p.a OLD_FILES+=3Dusr/lib/libbsnmp_p.a OLD_FILES+=3Dusr/lib/libbz2_p.a OLD_FILES+=3Dusr/lib/libc++_p.a OLD_FILES+=3Dusr/lib/libc_p.a OLD_FILES+=3Dusr/lib/libcalendar_p.a OLD_FILES+=3Dusr/lib/libcam_p.a OLD_FILES+=3Dusr/lib/libcom_err_p.a OLD_FILES+=3Dusr/lib/libcompat_p.a OLD_FILES+=3Dusr/lib/libcompiler_rt_p.a OLD_FILES+=3Dusr/lib/libcrypt_p.a OLD_FILES+=3Dusr/lib/libcrypto_p.a OLD_FILES+=3Dusr/lib/libctf_p.a OLD_FILES+=3Dusr/lib/libcurses_p.a OLD_FILES+=3Dusr/lib/libcursesw_p.a OLD_FILES+=3Dusr/lib/libcuse_p.a OLD_FILES+=3Dusr/lib/libcxxrt_p.a OLD_FILES+=3Dusr/lib/libdevctl_p.a OLD_FILES+=3Dusr/lib/libdevinfo_p.a OLD_FILES+=3Dusr/lib/libdevstat_p.a OLD_FILES+=3Dusr/lib/libdialog_p.a OLD_FILES+=3Dusr/lib/libdl_p.a OLD_FILES+=3Dusr/lib/libdpv_p.a OLD_FILES+=3Dusr/lib/libdtrace_p.a OLD_FILES+=3Dusr/lib/libdwarf_p.a OLD_FILES+=3Dusr/lib/libedit_p.a OLD_FILES+=3Dusr/lib/libefivar_p.a OLD_FILES+=3Dusr/lib/libelf_p.a OLD_FILES+=3Dusr/lib/libexecinfo_p.a OLD_FILES+=3Dusr/lib/libfetch_p.a OLD_FILES+=3Dusr/lib/libfigpar_p.a OLD_FILES+=3Dusr/lib/libfl_p.a OLD_FILES+=3Dusr/lib/libform_p.a OLD_FILES+=3Dusr/lib/libformw_p.a OLD_FILES+=3Dusr/lib/libgcc_eh_p.a OLD_FILES+=3Dusr/lib/libgcc_p.a OLD_FILES+=3Dusr/lib/libgeom_p.a OLD_FILES+=3Dusr/lib/libgpio_p.a OLD_FILES+=3Dusr/lib/libgssapi_krb5_p.a OLD_FILES+=3Dusr/lib/libgssapi_ntlm_p.a OLD_FILES+=3Dusr/lib/libgssapi_p.a OLD_FILES+=3Dusr/lib/libgssapi_spnego_p.a OLD_FILES+=3Dusr/lib/libhdb_p.a OLD_FILES+=3Dusr/lib/libheimbase_p.a OLD_FILES+=3Dusr/lib/libheimntlm_p.a OLD_FILES+=3Dusr/lib/libheimsqlite_p.a OLD_FILES+=3Dusr/lib/libhistory_p.a OLD_FILES+=3Dusr/lib/libhx509_p.a OLD_FILES+=3Dusr/lib/libicp_p.a OLD_FILES+=3Dusr/lib/libicp_rescue_p.a OLD_FILES+=3Dusr/lib/libipsec_p.a OLD_FILES+=3Dusr/lib/libipt_p.a OLD_FILES+=3Dusr/lib/libjail_p.a OLD_FILES+=3Dusr/lib/libkadm5clnt_p.a OLD_FILES+=3Dusr/lib/libkadm5srv_p.a OLD_FILES+=3Dusr/lib/libkafs5_p.a OLD_FILES+=3Dusr/lib/libkdc_p.a OLD_FILES+=3Dusr/lib/libkiconv_p.a OLD_FILES+=3Dusr/lib/libkrb5_p.a OLD_FILES+=3Dusr/lib/libkvm_p.a OLD_FILES+=3Dusr/lib/libl_p.a OLD_FILES+=3Dusr/lib/libln_p.a OLD_FILES+=3Dusr/lib/liblzma_p.a OLD_FILES+=3Dusr/lib/libm_p.a OLD_FILES+=3Dusr/lib/libmagic_p.a OLD_FILES+=3Dusr/lib/libmd_p.a OLD_FILES+=3Dusr/lib/libmemstat_p.a OLD_FILES+=3Dusr/lib/libmenu_p.a OLD_FILES+=3Dusr/lib/libmenuw_p.a OLD_FILES+=3Dusr/lib/libmilter_p.a OLD_FILES+=3Dusr/lib/libmp_p.a OLD_FILES+=3Dusr/lib/libmt_p.a OLD_FILES+=3Dusr/lib/libncurses_p.a OLD_FILES+=3Dusr/lib/libncursesw_p.a OLD_FILES+=3Dusr/lib/libnetgraph_p.a OLD_FILES+=3Dusr/lib/libnetmap_p.a OLD_FILES+=3Dusr/lib/libngatm_p.a OLD_FILES+=3Dusr/lib/libnv_p.a OLD_FILES+=3Dusr/lib/libnvpair_p.a OLD_FILES+=3Dusr/lib/libopencsd_p.a OLD_FILES+=3Dusr/lib/libopie_p.a OLD_FILES+=3Dusr/lib/libpanel_p.a OLD_FILES+=3Dusr/lib/libpanelw_p.a OLD_FILES+=3Dusr/lib/libpathconv_p.a OLD_FILES+=3Dusr/lib/libpcap_p.a OLD_FILES+=3Dusr/lib/libpjdlog_p.a OLD_FILES+=3Dusr/lib/libpmc_p.a OLD_FILES+=3Dusr/lib/libprivateatf-c++_p.a OLD_FILES+=3Dusr/lib/libprivateatf-c_p.a OLD_FILES+=3Dusr/lib/libprivateauditd_p.a OLD_FILES+=3Dusr/lib/libprivatebsdstat_p.a OLD_FILES+=3Dusr/lib/libprivatedevdctl_p.a OLD_FILES+=3Dusr/lib/libprivateevent_p.a OLD_FILES+=3Dusr/lib/libprivateevent1_p.a OLD_FILES+=3Dusr/lib/libprivategmock_main_p.a OLD_FILES+=3Dusr/lib/libprivategmock_p.a OLD_FILES+=3Dusr/lib/libprivategtest_main_p.a OLD_FILES+=3Dusr/lib/libprivategtest_p.a OLD_FILES+=3Dusr/lib/libprivateheimipcc_p.a OLD_FILES+=3Dusr/lib/libprivateheimipcs_p.a OLD_FILES+=3Dusr/lib/libprivateifconfig_p.a OLD_FILES+=3Dusr/lib/libprivateldns_p.a OLD_FILES+=3Dusr/lib/libprivatesqlite3_p.a OLD_FILES+=3Dusr/lib/libprivatessh_p.a OLD_FILES+=3Dusr/lib/libprivateucl_p.a OLD_FILES+=3Dusr/lib/libprivateunbound_p.a OLD_FILES+=3Dusr/lib/libprivatezstd_p.a OLD_FILES+=3Dusr/lib/libproc_p.a OLD_FILES+=3Dusr/lib/libprocstat_p.a OLD_FILES+=3Dusr/lib/libpthread_p.a OLD_FILES+=3Dusr/lib/libradius_p.a OLD_FILES+=3Dusr/lib/libregex_p.a OLD_FILES+=3Dusr/lib/libroken_p.a OLD_FILES+=3Dusr/lib/librpcsvc_p.a OLD_FILES+=3Dusr/lib/librss_p.a OLD_FILES+=3Dusr/lib/librt_p.a OLD_FILES+=3Dusr/lib/librtld_db_p.a OLD_FILES+=3Dusr/lib/libsbuf_p.a OLD_FILES+=3Dusr/lib/libsdp_p.a OLD_FILES+=3Dusr/lib/libsmb_p.a OLD_FILES+=3Dusr/lib/libspl_p.a OLD_FILES+=3Dusr/lib/libssl_p.a OLD_FILES+=3Dusr/lib/libstats_p.a OLD_FILES+=3Dusr/lib/libstdbuf_p.a OLD_FILES+=3Dusr/lib/libstdc++_p.a OLD_FILES+=3Dusr/lib/libstdthreads_p.a OLD_FILES+=3Dusr/lib/libsupc++_p.a OLD_FILES+=3Dusr/lib/libsysdecode_p.a OLD_FILES+=3Dusr/lib/libtacplus_p.a OLD_FILES+=3Dusr/lib/libtermcap_p.a OLD_FILES+=3Dusr/lib/libtermcapw_p.a OLD_FILES+=3Dusr/lib/libtermlib_p.a OLD_FILES+=3Dusr/lib/libtermlibw_p.a OLD_FILES+=3Dusr/lib/libthr_p.a OLD_FILES+=3Dusr/lib/libthread_db_p.a OLD_FILES+=3Dusr/lib/libtinfo_p.a OLD_FILES+=3Dusr/lib/libtinfow_p.a OLD_FILES+=3Dusr/lib/libtpool_p.a OLD_FILES+=3Dusr/lib/libufs_p.a OLD_FILES+=3Dusr/lib/libugidfw_p.a OLD_FILES+=3Dusr/lib/libulog_p.a OLD_FILES+=3Dusr/lib/libumem_p.a OLD_FILES+=3Dusr/lib/libusb_p.a OLD_FILES+=3Dusr/lib/libusbhid_p.a OLD_FILES+=3Dusr/lib/libutempter_p.a OLD_FILES+=3Dusr/lib/libutil_p.a OLD_FILES+=3Dusr/lib/libuutil_p.a OLD_FILES+=3Dusr/lib/libvgl_p.a OLD_FILES+=3Dusr/lib/libvmmapi_p.a OLD_FILES+=3Dusr/lib/libwind_p.a OLD_FILES+=3Dusr/lib/libwrap_p.a OLD_FILES+=3Dusr/lib/libxo_p.a OLD_FILES+=3Dusr/lib/liby_p.a OLD_FILES+=3Dusr/lib/libypclnt_p.a OLD_FILES+=3Dusr/lib/libz_p.a OLD_FILES+=3Dusr/lib/libzfs_core_p.a OLD_FILES+=3Dusr/lib/libzfs_p.a OLD_FILES+=3Dusr/lib/libzfsbootenv_p.a OLD_FILES+=3Dusr/lib/libzutil_p.a OLD_FILES+=3Dusr/lib/libprivateldns_p.a OLD_FILES+=3Dusr/lib/libprivatessh_p.a .endif I expect that this is part of the mechanism that will ultimately remove those then-out-of-date files from systems when WITH_PROFILE is no longer supported. Metion was made of "[a] similar change is still needed for GCC" --but I've no clue of the details or status. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54761641-8AD3-44A6-8620-F1341ED9AB56>