Re: Profiled libraries on freebsd-current
- In reply to: Steve Kargl : "Re: Profiled libraries on freebsd-current"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 04 May 2022 20:47:04 UTC
On 5/4/22 1:38 PM, Steve Kargl wrote: > On Wed, May 04, 2022 at 01:22:57PM -0700, John Baldwin wrote: >> On 5/4/22 12:53 PM, Steve Kargl wrote: >>> On Wed, May 04, 2022 at 11:12:55AM -0700, John Baldwin wrote: >>> >>> I don't know the entire FreeBSD ecosystem. Do people >>> use FreeBSD on embedded systems (e.g., nanobsd) where >>> libthr may be stripped out? Thus, --enable-threads=no >>> is needed. >> >> If they do, they are also using a constrained userland and >> probably are not shipping a GCC binary either. However, it's >> not clear to me what --enable-threads means. >> >> Does this enable -pthread as an option? If so, that should >> definitely just always be on. It's still an option users have >> to opt into via a command line flag and doesn't prevent >> building non-threaded programs. >> >> If it's enabling use of threads at runtime within GCC itself, >> I'd say that also should probably just be allowed to be on. >> >> I can't really imagine what else it might mean (and I doubt >> it means the latter). >> > > AFAICT, it controls whether -lpthread is automatically added to > the command line. In the case of -pg, it is -lpthread_p. > The relevant lines are > > #ifdef FBSD_NO_THREADS > #define FBSD_LIB_SPEC " \ > %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \ > is built with the --enable-threads configure-time option.} \ > %{!shared: \ > %{!pg: -lc} \ > %{pg: -lc_p} \ > }" > #else > #define FBSD_LIB_SPEC " \ > %{!shared: \ > %{!pg: %{pthread:-lpthread} -lc} \ > %{pg: %{pthread:-lpthread_p} -lc_p} \ > } \ > %{shared: \ > %{pthread:-lpthread} -lc \ > }" > #endif > > Ed is wondering if one can get rid of FBSD_NO_THREADS. With the > pending removal of WITH_PROFILE, the above reduces to > > #define FBSD_LIB_SPEC " \ > %{!shared: \ > %{pthread:-lpthread} -lc \ > } \ > %{shared: \ > %{pthread:-lpthread} -lc \ > }" > > If one can do the above, then freebsd-nthr.h is no longer needed > and can be deleted and config.gcc's handling of --enable-threads > can be updated/removed. Ok, so it's just if -pthread is supported (%{pthread:-lpthread} only adds -lpthread if -pthread was given on the command line). That can just be on all the time and Ed is correct that it is safe to remove the FBSD_NO_THREADS case and assume it is always present instead. -- John Baldwin