Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2022 13:22:57 -0700
From:      John Baldwin <jhb@FreeBSD.org>
To:        sgk@troutmask.apl.washington.edu
Cc:        Ed Maste <emaste@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: Profiled libraries on freebsd-current
Message-ID:  <4b128639-f233-acfe-aeb4-5830aa973cb6@FreeBSD.org>
In-Reply-To: <YnLZraesrXQJdgy3@troutmask.apl.washington.edu>
References:  <Ymt%2BICLaQPxx2knx@troutmask.apl.washington.edu> <CAPyFy2CuSFd7zm8BvrWYDv%2BEgM0Ryz-bxwWNzUEMEkm0fruokA@mail.gmail.com> <Ym1XE9QSSvIy/4uo@troutmask.apl.washington.edu> <CAPyFy2AcKcT3NmpA5cs0WG4B7gPCJwdax%2BPp02YHEQBmJ10ZtQ@mail.gmail.com> <Ym6tJn60RmqQVsrv@troutmask.apl.washington.edu> <CAPyFy2DJp6ycnqsZMH%2B094B%2BhykYrF4T5PN3qHm9qogVkQm9dQ@mail.gmail.com> <YnAWvEvQaNgzTFYn@troutmask.apl.washington.edu> <80e38cf3-0d53-fce6-76e6-936c47d95c91@FreeBSD.org> <YnLZraesrXQJdgy3@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/4/22 12:53 PM, Steve Kargl wrote:
> On Wed, May 04, 2022 at 11:12:55AM -0700, John Baldwin wrote:
>> On 5/2/22 10:37 AM, Steve Kargl wrote:
>>> On Mon, May 02, 2022 at 12:32:25PM -0400, Ed Maste wrote:
>>>> On Sun, 1 May 2022 at 11:54, Steve Kargl
>>>> <sgk@troutmask.apl.washington.edu> wrote:
>>>>>
>>>>> diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
>>>>> index 594487829b5..1e8ab2e1827 100644
>>>>> --- a/gcc/config/freebsd-spec.h
>>>>> +++ b/gcc/config/freebsd-spec.h
>>>>> @@ -93,14 +93,22 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>>>>>       (similar to the default, except no -lg, and no -p).  */
>>>>>
>>>>>    #ifdef FBSD_NO_THREADS
>>>>
>>>> I wonder if we can simplify things now, and remove this
>>>> `FBSD_NO_THREADS` case. I didn't see anything similar in other GCC
>>>> targets I looked at.
>>>
>>> That I don't know.  FBSD_NO_THREADS is defined in freebsd-nthr.h.
>>> In fact, it's the only thing in that header (except copyright
>>> broilerplate).  freebsd-nthr.h only appears in config.gcc and
>>> seems to only get added to the build if someone runs configure
>>> with --enable-threads=no.  Looking at my last config.log for
>>> gcc trunk, I see "Thread model: posix", which appears to be
>>> the default case or if someone does --enable-threads=yes or
>>> --enable-threads=posix.  So, I suppose it comes down to
>>> two questions: (1) is libpthread.* available on all supported
>>> targets and versions? (2) does anyone build gcc without
>>> threads support?
>>
>> libpthread is available on all supported architectures on all
>> supported versions.  libthr has been the default threading library
>> since 7.0 and the only supported library since 8.0.  In GDB I just
>> assume libthr style threads, and I think GCC can safely do the
>> same.
>>
> 
> 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).

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4b128639-f233-acfe-aeb4-5830aa973cb6>