Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2008-09

FreeBSD/x86_64 snapshots

9 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Marco van de Voort

Hello,

The first snapshots of x86_64-FreeBSD are rolling in:

a 26MB snapshot is available at (all binaries, just needs a fpc.cfg)

http://www.stack.nl/~marcov/snapshot-freebsd-x86_64-r11798.tar.bz2

Problems:
- I had some odd problems on a 7.1.1-PRERELEASE2 machine. Looked like a binutils (AR) problem, but the versions are the same?!?
- The textmode IDE looks fairly messed up, but that could be the VMware console (it was mostly developed in a VM)
- shared linking works, but some ncurses programs RTE on shutdown (but not all). Some warnings there about signed arguments too. Maybe ioctl numbers vary.

Greetings

Marco

Francisco Reyes
to Marco van de Voort
Marco van de Voort wrote
a 26MB snapshot is available at (all binaries, just needs a fpc.cfg)

How do we test it?
I untared the file.
Went into snapshot/bin and tried "fpx hello.pas".. Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127

I see it in snapshot/lib/fpc/2.3.1

Is it a matter of adding to path or installing and modifying a cfg? The cfg should it go in /etc/ or in the same directory as the fpc program?

Marco van de Voort
to Francisco Reyes

In our previous episode, Francisco Reyes said:

Show quoted text 14 lines
Marco van de Voort writes: > a 26MB snapshot is available at (all binaries, just needs a fpc.cfg) How do we test it? I untared the file. Went into snapshot/bin and tried "fpx hello.pas".. Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127 I see it in snapshot/lib/fpc/2.3.1 Is it a matter of adding to path or installing and modifying a cfg? The cfg should it go in /etc/ or in the same directory as the fpc program?

Well, this is the stuff the buildfaq reading was for :-)

Everything below snapshot is to go into some prefix. IOW you can copy it into /usr/local or maintain it local.

I usually choose local (e.g. ~/snapshot) and to reserve the real prefixes for releases.

For local installations I then either symlink snapshot/bin to ~/bin (if I don't have a ~/bin), or make symlinks from ~/bin/<x> to ~/snapshot/bin/<x>

I store a minimal configuration file in ~/.fpc.cfg :

-Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh

Note again, I recommend trying to install local the first times till you get the hang of it, so that you don't accidentally mutilate global dirs.

Francisco Reyes
to Marco van de Voort
Marco van de Voort wrote
Well, this is the stuff the buildfaq reading was for :-)

I printed it and read it on the train.. on the way home.

I store a minimal configuration file in ~/.fpc.cfg : -Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh

Tried that.
Tar examped off ~ so I have ~/snapshot.
Symbolic link from ~/snapshot to ~/bin

~/.fpc.cfg has
-Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh

When I try to run fpc I get:
Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127

I did a symbolic link for ppcx64 to be in ~/bin; that fixed the problem.

I see that in the i386 that is how it is solved too. A sym link in /usr/local/bin for /usr/local/lib/fpc/2.2.2/ppc386

So far only compiled a few simple programs, but the snapshot seems to work.

Do we want more testers? Or you want to do more work before doing a more widespread announcement.. Could post a note in FbsdAMD64 lettting people know of the snapshot.. for testing.

Where/how do I get the regression tests? From SVN?

Unknown author
to Francisco Reyes

I will test it!! I need it!

Thanks!

Fabio Luis Girardi

2008/9/18 Francisco Reyes

Show quoted text 44 lines
Marco van de Voort writes: Well, this is the stuff the buildfaq reading was for :-) > I printed it and read it on the train.. on the way home. > I store a minimal configuration file in ~/.fpc.cfg : > > -Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* > -viwh > Tried that. Tar examped off ~ so I have ~/snapshot. Symbolic link from ~/snapshot to ~/bin ~/.fpc.cfg has -Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh When I try to run fpc I get: Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127 I did a symbolic link for ppcx64 to be in ~/bin; that fixed the problem. I see that in the i386 that is how it is solved too. A sym link in /usr/local/bin for /usr/local/lib/fpc/2.2.2/ppc386 So far only compiled a few simple programs, but the snapshot seems to work. Do we want more testers? Or you want to do more work before doing a more widespread announcement.. Could post a note in FbsdAMD64 lettting people know of the snapshot.. for testing. Where/how do I get the regression tests? From SVN? _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Marco van de Voort
to Francisco Reyes: I printed it and read it on the train.. on the way home. Tried that. Tar examped off ~ so…

In our previous episode, Francisco Reyes said:

Do we want more testers?

Only knowledgable. Like people who know

Or you want to do more work before doing a more

Show quoted text 6 lines
widespread announcement.. Could post a note in FbsdAMD64 lettting people know of the snapshot.. for testing. Where/how do I get the regression tests? From SVN? From svn indeed, but the results of my run of the snapshot are visible on

the testsuite overview site here:

http://www.freepascal.org/testsuite/cgi-bin/testsuite.cgi?os=5&cpu=8&version=0&date=

Still twice as many failures as the x86 one. Not all are big problems, but some are, like:

(from tlib1a.pp):

/usr/bin/ld: ./units/x86_64-freebsd/prt0.o: relocation R_X86_64_32S can not /be used when making a shared object; recompile with -fPIC ./units/x86_64-freebsd/prt0.o: could not read symbols: Bad value tlib1a.pp(18) Error: Error while linking
tlib1a.pp(18) Fatal: There were 1 errors compiling module, stopping Fatal: Compilation aborted

Probably the variables I/Florian inserted into the startup code need pic tables.

Francisco Reyes
to Marco van de Voort
Marco van de Voort wrote
Still twice as many failures as the x86 one. Not all are big problems, but some are, like:

You mean the Linux x86?

What can a newbie like myself do to help?
I was thinking to work on a port for FreeBSD of the binary files currently on the site or learn how to update the existing port.

Francisco Reyes
to Unknown author: I will test it!! I need it! Thanks! Fabio Luis Girardi 2008/9/18 Francisco Reyes
I will test it!! I need it!

Fabio,

Basically all you need to do is:
+ Untar snapshot to your home directory
+ Create ~/.fpc.cfg :
-Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh
+ Either symlink /snapshot/bin to ~/bin or
cd ~/bin
ln -s /snaphot/bin/*
+ Symlink the ppcx64 file too
cd ~/bin
ln -s /snapshot/lib/fpc/2.3.1/ppcx64 (from memory, check)

I plan to test it some more this weekend too..

Unknown author
to Francisco Reyes

Hi!

I can compile small programs with fpc freebsd x86_64. Then I tried compile and run lazarus (0.9.27 snapshot of 2008-09-25). I can compile, but I can't run it.

the output:

%cd lazarus
%gmake LCL_PLATFORM=gtk2

...

%./startlazarus
Runtime error 217 at $00000000004ABC85
$00000000004ABC85
$0000000000603D88 line 258 of ../gtk/gtkwidgetset.inc $00000000005DCBEE line 543 of gtk2widgetset.inc
$000000000045217E line 1593 of forms.pp
$0000000000439548 line 39 of interfaces.pas
$000000000042DA7B
$000000000041AEB9

%file startlazarus
startlazarus: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), for FreeBSD 7.0 (700055), dynamically linked (uses shared libs), FreeBSD-style, not stripped
%fpc teste.pas
Free Pascal Compiler version 2.3.1 [2008/09/17] for x86_64 Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: FreeBSD for x86-64
Compiling teste.pas
Assembling teste
Linking teste
5 lines compiled, 0.1 sec
%./teste
teste
%

My fpc.cfg (from my FPC 2.2.0 FreeBSD 32 bits):

#
# Example fpc.cfg for Free Pascal Compiler
#

# ----------------------
# Defines (preprocessor)
# ----------------------

#
# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed #
# -d is the same as #DEFINE
# -u is the same as #UNDEF
#

#
# Some examples (for switches see below, and the -? helppages) #
# Try compiling with the -dRELEASE or -dDEBUG on the commandline #

# For a release compile with optimizes and strip debuginfo #IFDEF RELEASE
-O2
-Xs
#WRITE Compiling Release Version
#ENDIF

# For a debug version compile with debuginfo and all codegeneration checks on
#IFDEF DEBUG
-g
-Crtoi
#WRITE Compiling Debug Version
#ENDIF

# set binutils prefix

#IFNDEF CPUI386
#IFNDEF CPUAMD64
#DEFINE NEEDCROSSBINUTILS
#ENDIF
#ENDIF

#IFNDEF freebsd
#DEFINE NEEDCROSSBINUTILS
#ENDIF

#IFDEF FPC_CROSSCOMPILING
#IFDEF NEEDCROSSBINUTILS
-XP$fpctarget-
#ENDIF NEEDCROSSBINUTILS
#ENDIF

# ----------------
# Parsing switches
# ----------------

# Pascal language mode
# -Mfpc free pascal dialect (default)
# -Mobjfpc switch some Delphi 2 extensions on # -Mdelphi tries to be Delphi compatible
# -Mtp tries to be TP/BP 7.0 compatible # -Mgpc tries to be gpc compatible
# -Mmacpas tries to be compatible to the macintosh pascal dialects #
# Turn on Object Pascal extensions by default
#-Mobjfpc

# Assembler reader mode
# -Rdefault use default assembler
# -Ratt read AT&T style assembler
# -Rintel read Intel style assembler
#
# All assembler blocks are AT&T styled by default
#-Ratt

# Semantic checking
# -S2 same as -Mobjfpc
# -Sc supports operators like C (*=,+=,/= and -=) # -Sa include assertion code.
# -Sd same as -Mdelphi
# -Se<x> error options. <x> is a combination of the following: # <n> : compiler stops after the <n> errors (default is 1) # w : compiler stops also after warnings
# n : compiler stops also after notes
# h : compiler stops also after hints
# -Sg allow LABEL and GOTO
# -Sh Use ansistrings
# -Si support C++ styled INLINE
# -Sk load fpcylix unit
# -SI<x> set interface style to <x>
# -SIcom COM compatible interface (default) # -SIcorba CORBA compatible interface
# -Sm support macros like C (global)
# -So same as -Mtp
# -Sp same as -Mgpc
# -Ss constructor name must be init (destructor must be done) # -St allow static keyword in objects
# -Sx enable exception keywords (default in Delphi/ObjFPC modes) #
# Allow goto, inline, C-operators, C-vars
-Sgic

# ---------------
# Code generation
# ---------------

# Uncomment the next line if you always want static/dynamic units by default # (can be overruled with -CD, -CS at the commandline) #-CS
#-CD

# Set the default heapsize to 8Mb
#-Ch8000000

# Set default codegeneration checks (iocheck, overflow, range, stack) #-Ci
#-Co
#-Cr
#-Ct

# Optimizer switches
# -Os generate smaller code
# -O1 level 1 optimizations (quick optimizations, debuggable) # -O2 level 2 optimizations (-O1 + optimizations which make debugging more difficult)
# -O3 level 3 optimizations (-O2 + optimizations which also may make the program slower rather than faster)
# -Op<x> set target cpu for optimizing, see fpc -i for possible values #
# See "fpc -i" also for more fine-grained control over which optimizations # to perform

# -----------------------
# Set Filenames and Paths
# -----------------------

# Slashes are also allowed under dos

# path to the messagefile, not necessary anymore but can be used to override # the default language
#-Fr/usr/local/lib/fpc/$fpcversion/msg/errore.msg
#-Fr/usr/local/lib/fpc/$fpcversion/msg/errorn.msg

# searchpath for includefiles
#-Fi/pp/inc;/pp/rtl/inc

# searchpath for units and other system dependent things -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/* -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl #-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/

# searchpath for libraries
-Fl/usr/local/lib

#-Fl/pp/lib
#-Fl/lib;/usr/lib

# -------------
# Linking
# -------------

# generate always debugging information for GDB (slows down the compiling # process)
# -gc generate checks for pointers
# -gd use dbx
# -gg use gsym
# -gh use heap trace unit (for memory leak debugging) # -gl use line info unit to show more info for backtraces # -gv generates programs tracable with valgrind # -gw generate dwarf debugging info
#
# Enable debuginfo and use the line info unit by default #-gl

# always pass an option to the linker
#-k-s

# Always strip debuginfo from the executable
-Xs

# -------------
# Miscellaneous
# -------------

# Write always a nice FPC logo ;)
-l

# Verbosity
# e : Show errors (default) d : Show debug info # w : Show warnings u : Show unit info # n : Show notes t : Show tried/used files # h : Show hints c : Show conditionals # i : Show general info d : Show debug info # l : Show linenumbers r : Rhide/GCC compatibility mode # a : Show everything x : Executable info (Win32 only) # b : Write file names messages with full path # v : write fpcdebug.txt with p : Write tree.log with parse tree # lots of debugging info
#
# Display Info, Warnings and Notes
-viwn
# If you don't want so much verbosity use
#-vw

#
# That's all folks
#

Fabio Luis Girardi

2008/9/19 Francisco Reyes

Show quoted text 25 lines
writes: I will test it!! I need it! > Fabio, Basically all you need to do is: + Untar snapshot to your home directory + Create ~/.fpc.cfg : -Fu~/snapshot/lib/fpc/$FPCVERSION/units/$FPCTARGET/* -viwh + Either symlink /snapshot/bin to ~/bin or cd ~/bin ln -s /snaphot/bin/* + Symlink the ppcx64 file too cd ~/bin ln -s /snapshot/lib/fpc/2.3.1/ppcx64 (from memory, check) I plan to test it some more this weekend too.. _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal