git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Marco Roeland <marco.roeland@xs4all.nl>
To: Junio C Hamano <junkio@cox.net>
Cc: Marco Roeland <marco.roeland@xs4all.nl>,
	Terje Sten Bjerkseth <terje@bjerkseth.org>,
	"Randal L. Schwartz" <merlyn@stonehenge.com>,
	Linus Torvalds <torvalds@osdl.org>, Rocco Rutte <pdmef@gmx.net>,
	git@vger.kernel.org
Subject: Re: [PATCH] Don't define _XOPEN_SOURCE on MacOSX and FreeBSD as it is too restricting
Date: Fri, 22 Dec 2006 08:51:42 +0100	[thread overview]
Message-ID: <20061222075142.GA9595@fiberbit.xs4all.nl> (raw)
In-Reply-To: <7v64c492fv.fsf@assigned-by-dhcp.cox.net>

On Thursday December 21st 2006 at 16:52 Junio C Hamano wrote:

> Personally, I think hiding interfaces such as strXXX and memXXX
> based on _XOPEN_SOURCE level is already a bug in the system
> header implementation.  The symbols that begin with str are
> already reserved by the standard and I do not see any point
> in the system headers to try avoiding namespace contamination.
> 
> But we are not in the business of fixing the system headers.

;-)

Perhaps the idea behind this might be that it allows you to easier
develop software that really only uses interfaces strictly defined in
some "standards" to be always available on compliant platforms. That's
all I could think of why you ever would want to do it like this yes.

> Two and half questions.
> 
>  #0.5 Have you checked the tip of 'master' that has Terje's
>       patch?  It was reported to work yesterday and that is what
>       was committed already.

For some reason a normal "pull" didn't show this one here yet. But I can
see it by merging. The commit "c902c9a" that I now see from Terje does
indeed work here. At any rate that one alone doesn't fix the (same)
FreeBSD issue as reported by Rocco Rutte who sent in an almost identical
patch but with the __FreeBSD__ define.

>  #1   __APPLE__ vs __APPLE_CC__ is not something I can decide (I
>       do not run a Mac).  If MaxOS is derived from FreeBSD, does
>       it by chance define __FreeBSD as well?

As far as I know __APPLE__ is the preferred way of finding out we're
running for a Darwin target. Someone mentioned that __APPLE_CC__ was not
introduced until Apple OS X 10.4. It's value here ('5367') is the build
version of the Apple gcc compiler, doesn't seem very standardized. The
__APPLE__ macro is defined as '1'.

Unfortunately no there is _not_ any "BSD" like macro defined here, so no
__FreeBSD or something. And interesting enough we already know that
OpenBSD specifically needs the _XOPEN_SOURCE define. Anyone out there
with a NetBSD box so we can fix that as well? ;-)

>  #2   Terje's patch excludes _XOPEN_SOURCE_EXTENDED as well on a
>       Mac, but yours doesn't.  Is there a reason that you would
>       want '#define _XOPEN_SOURCE_EXTENDED 1'?  Do both FreeBSD
>       and Mac behave well with it defined?

On Apple compiling git works fine both with and without
_XOPEN_SOURCES_EXTENDED. But looking in the headers, in contrast to the
_XOPEN_SOURCE define which restricts functionality to some predefined
set, the _XOPEN_SOURCES_EXTENDED only adds functionality and doesn't
remove it. So I thought it might be best to keep as much symbols as
possible to be the same for all platforms for future expandibility.

Probably FreeBSD behaves the same with respect to
_XOPEN_SOURCE_EXTENDED. Will check later today.

I don't know if the "Apple Public Source License" allows me to put the
Darwin system headers in a publicly accessable place, so I won't do
that, but if people are interested I can of course privately provide the
system headers and predefined symbols for anyone interested.
-- 
Marco Roeland

  parent reply	other threads:[~2006-12-22  7:51 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-20 20:48 What's in git.git (stable), and Announcing GIT 1.4.4.3 Junio C Hamano
2006-12-20 22:04 ` Randal L. Schwartz
2006-12-20 22:14   ` Linus Torvalds
2006-12-20 22:20     ` [BUG] daemon.c blows up on OSX (was Re: What's in git.git (stable), and Announcing GIT 1.4.4.3) Randal L. Schwartz
2006-12-20 22:25       ` [BUG] daemon.c blows up on OSX Junio C Hamano
2006-12-20 22:35         ` Randal L. Schwartz
2006-12-20 22:44           ` Junio C Hamano
2006-12-20 22:46           ` Randal L. Schwartz
2006-12-20 23:03             ` Junio C Hamano
2006-12-20 23:25               ` Randal L. Schwartz
2006-12-20 23:34                 ` Randal L. Schwartz
2006-12-21  2:04                   ` Stefan Pfetzing
2006-12-20 23:07             ` Linus Torvalds
2006-12-20 23:17               ` Randal L. Schwartz
2006-12-20 23:30                 ` Junio C Hamano
2006-12-20 23:41                 ` Linus Torvalds
2006-12-21  0:36                   ` Terje Sten Bjerkseth
2006-12-21  0:44                     ` Junio C Hamano
2006-12-21  0:54                       ` Terje Sten Bjerkseth
2006-12-21  1:00                         ` Junio C Hamano
2006-12-21  1:20                           ` Randal L. Schwartz
2006-12-21  1:29                             ` Junio C Hamano
2006-12-21  1:35                             ` Terje Sten Bjerkseth
2006-12-21 10:39                               ` [PATCH] Do not define _XOPEN_SOURCE on MacOSX as it is too restricting there Marco Roeland
2006-12-21 11:28                                 ` [PATCH] Don't define _XOPEN_SOURCE on MacOSX and FreeBSD as it is too restricting Marco Roeland
2006-12-22  0:52                                   ` Junio C Hamano
2006-12-22  1:04                                     ` Shawn Pearce
2006-12-22  6:53                                     ` Rocco Rutte
2006-12-22  7:51                                     ` Marco Roeland [this message]
2006-12-22  8:37                                       ` Junio C Hamano
2006-12-22 11:47                                         ` Marco Roeland
2006-12-22 12:55                                           ` Rocco Rutte
2006-12-22 13:14                                             ` Marco Roeland
2007-01-03 15:25                       ` [BUG] daemon.c blows up on OSX Andreas Ericsson
2006-12-21  0:44                     ` Linus Torvalds
2006-12-21  1:07                       ` Randal L. Schwartz
2006-12-21  1:13                         ` Junio C Hamano
2006-12-21  1:08                     ` Randal L. Schwartz
     [not found]                       ` <24BF45E9-DD98-4609-9D65-B01EAA30CCA8@silverinsanity.com>
2006-12-21  1:35                         ` Randal L. Schwartz
2006-12-21  1:48                           ` Junio C Hamano
2006-12-21  1:50                             ` Randal L. Schwartz
2006-12-21  1:57                               ` Junio C Hamano
2006-12-20 23:58     ` What's in git.git (stable), and Announcing GIT 1.4.4.3 Randal L. Schwartz
2006-12-20 22:17   ` Junio C Hamano
2006-12-21  8:43     ` Johannes Schindelin
2006-12-21  8:52       ` Junio C Hamano
2006-12-20 22:19   ` Nicolas Pitre
2006-12-21 11:38 ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061222075142.GA9595@fiberbit.xs4all.nl \
    --to=marco.roeland@xs4all.nl \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=merlyn@stonehenge.com \
    --cc=pdmef@gmx.net \
    --cc=terje@bjerkseth.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).