Andy Dougherty wrote:

On Solaris 8, here's how it seems to work:
[...]

Wow, you figured it out. Great work.

For gcc, the file values-Xa.o appears to be hard-wired in to the
built-in specs.  The only way to change it appears to be to override it
with a custom specs file.  Hmm.  That might not be too hard.  We just
create a file (I'll call it 'parrot-gcc.specs') with the following two
lines:

    *startfile_arch:
    %{ansi:values-Xc.o%s}                   %{!ansi:values-xpg4.o%s}

and then add  -specs=parrot-gcc.specs to $linkflags.
(if values-xi.o is available, that might be a better choice.)

I think xpg4 will be fine. Anything else will need to also figure out if we're building 32bit or 64bit binaries and adjust the path aswell.

It's not *too* messy. What do you think?

I think it's great.

(Hmm.  It might get messy
for installation, however -- where do we put the specs file so that
languages that build against parrot know how to pick it up?)

Just a little. We need to adjust the install_config.fpmc so that the linker option points to the installed specs file (and of course install the file). That way, the installed pbc_to_exe should pick it up, which should work for languages. People embedding parrot should probably use the compile flags from parrot_config, so they will be getting it aswell. The only "mess" I can see is conditionally installing another file.

When I was building parrot to verify the fix actually works for parrot aswell, I found one small remaining problem. When using g++ as the linker, the values-xpg4 does not seem to have the expected effect. I've verified with -v that it is actually used, still atan2 is giving the wrong result. Can you verify that, and if so, do you have an idea what's causing it?

RG.

PS: You can see the successful build at
http://smolder.plusthree.com/app/public_projects/report_details/19425
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to