Heads Up: cvs commit: src/contrib/gcc/config freebsd-spec.h (fwd)

Daniel Eischen eischen at vigrid.com
Wed Sep 3 08:57:23 PDT 2003


Here is a thread from Feb 2001:

  http://docs.freebsd.org/cgi/getmsg.cgi?fetch=629118+0+archive/2001/freebsd-current/20010218.freebsd-current

In summary, using -pthread with gcc in -current will be an error.
Our ports should really be ${PTHREAD_LIBS} clean if we want to
support different thread libraries, even on port by port basis.

If we continue to allow -pthread, we'll end up with ports linked
to both libc_r and {libkse(M:N),libkse(1:1),libthr,linuxthreads,etc}
and this doesn't work; they ports will build fine, but they won't
run correctly.

I suggest that libtool, autoconf, etc., be taught about ${PTHREAD_LIBS}
and if defined, use that instead of -lc_r, -lpthread, etc.  If
${PTHREAD_LIBS} is not defined, then order of detection should
be -lpthread, then -lc_r last.

-- 
Dan Eischen

---------- Forwarded message ----------
Date: Wed, 3 Sep 2003 08:44:34 -0700 (PDT)
From: Daniel Eischen <deischen at FreeBSD.org>
To: src-committers at FreeBSD.org, cvs-src at FreeBSD.org, cvs-all at FreeBSD.org
Subject: cvs commit: src/contrib/gcc/config freebsd-spec.h

deischen    2003/09/03 08:44:34 PDT

  FreeBSD src repository

  Modified files:
    contrib/gcc/config   freebsd-spec.h 
  Log:
  Remove the -pthread option (in FreeBSD versions 500016 and greater) as
  threatened over 2 years ago.
  
  Why?  -pthread was a hack to prevent linking to both libc and libc_r
  and became unecessary when libc_r became free of libc.  Now that we
  have multiple thread libraries from which to choose, it is more confusing
  because you can't link to more than one threads library at a time.
  Things like autoconf and libtool sometimes detect -pthread and
  also -lc_r, and in conjunction with ports usage of ${PTHREAD_LIBS},
  really wacky things ensue when PTHREAD_LIBS is set to another
  threads library.  This might not be so bad if the build broke
  when this happens, but it doesn't and you don't know it until
  funny things happen when you run the application (or use an
  affected library).
  
  Reviewed by:    obrien
  
  Revision  Changes    Path
  1.12      +14 -11    src/contrib/gcc/config/freebsd-spec.h



More information about the freebsd-ports mailing list