On Nov 17, 2007, at 5:50 PM, chromatic wrote:

On Saturday 17 November 2007 12:35:34 James E Keenan wrote:

There's the problem them.  Assuming you're using gcc 4.x,

I'm not.

Remember all that problem I was having at the hackathon getting my
first build of Parrot.  You and Chip and subsequently Coke diagnosed
it as due to my botched attempt to build my own gcc 4.x.  So ever
since, I've specified the Apple-supplied build of gcc as a command-
line option.

(Not sure how that affects the current problem, however.)

That explains everything. Visibility hiding is only available in gcc 4.x, so you don't need PARROT_API at all; every symbol in a shared library is visible
to anything that dynamically loads that shared library.

It surprises me that Coke's x86/Darwin doesn't support visibility hiding, as I thought he was using Mac OS X 10.4 which I thought also used gcc 4.x, so
there may be compiler option detection problems there.

When installing the dev tools, you can pick a few different gcc options, as I recall; you can switch between which one is used by using 'sudo gcc_select'.

$ gcc_select --list
Available compiler versions:
3.3             3.3-fast        4.0

$ gcc_select
Current default compiler:
gcc version 4.0.1 (Apple Computer, Inc. build 5363)

So, I'm using the apple supplied gcc 4.

I am also using ccache explicitly when building parrot.

CC="ccache gcc-4.0"
CX="ccache g++-4.0"
perl Configure.pl --cc="$CC" --cxx="$CX" --link="$CX" --ld="$CX" $@

$ grep -ai visibility Makefile
CFLAGS = $(CC_INC) -fno-common -no-cpp-precomp -pipe - Wdeclaration-after-statement -pipe -fno-common -Wno-long-double - DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED - DHASATTRIBUTE_FORMAT -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL - DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED - DHASATTRIBUTE_WARN_UNUSED_RESULT -I/opt/local/include -I /opt/local/ include -g -W -Wall -Waggregate-return -Wbad-function-cast -Wcast- align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit - Wimplicit-function-declaration -Wimplicit-int -Wimport -Winline - Wmain -Wmissing-braces -Wmissing-declarations -Wmissing-prototypes - Wnested-externs -Wno-unused -Wnonnull -Wpacked -Wparentheses - Wpointer-arith -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict- aliasing -Wstrict-prototypes -Wswitch -Wswitch-default -Wnested- externs -Wundef -Wunknown-pragmas -Wwrite-strings -Wsign-compare - falign-functions=16 -Wdisabled-optimization -Wformat-nonliteral - Wformat-security -Wpacked -Wbad-function-cast -Wdeclaration-after- statement -Wextra -Winit-self -Winvalid-pch -Wold-style-definition - Wstrict-aliasing=2 -fvisibility=hidden -Wmissing-field-initializers - Wno-shadow -DHAVE_COMPUTED_GOTO $(CC_SHARED)

I do have visibility hidden enabled. (I wonder if this is related to my tcl bug.)


Anyway, I've resolved these failures temporarily in r22866 by marking the
tests as TODO on non-Darwin platforms.

I'd like to see these tests go away, though. Their approaches are flawed.

-- c


--
Will "Coke" Coleda
[EMAIL PROTECTED]


Reply via email to