Re: est man page

2012-06-12 Thread Glen Barber
On Wed, Jun 13, 2012 at 12:06:00PM +0900, Hiroki Sato wrote:
> Sean Bruno  wrote
>   in <1339531057.42366.2.ca...@powernoodle.corp.yahoo.com>:
> 
> se> On Tue, 2012-06-05 at 14:13 -0700, Sean Bruno wrote:
> se> > On Tue, 2012-06-05 at 11:55 -0700, Sean Bruno wrote:
> se>
> se>
> se>
> se> allrighty, after some doc reviews by Glen, I've thwacked together a
> se> quick and dirty est(4).
> se>
> se> Any objections?
> se>
> se> http://people.freebsd.org/~sbruno/est_man.txt
> 
>  Looks good.  Attached a diff for some small fixes.
> 
> se> view via:
> se> groff -S -P-h -Wall -mtty-char -man -Tascii est_man.txt | less
> 
>  % man $PWD/est_man.txt
> 
>  may be easier :)
> 
> -- Hiroki

> --- est_man.txt.orig  2012-06-13 11:06:23.0 +0900
> +++ est_man.txt   2012-06-13 11:39:12.0 +0900
> @@ -23,6 +23,7 @@
>  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>  .\" SUCH DAMAGE.
>  .\"
> +.\" $FreeBSD$
>  .\"
>  .Dd June 12, 2012
>  .Dt EST 4
> @@ -36,7 +37,7 @@
>  configuration file:
>  .Bd -ragged -offset indent
>  .Cd "device cpufreq"
> -.Ep
> +.Ed
>  .Sh DESCRIPTION
>  The
>  .Nm
> @@ -72,12 +73,12 @@
>  .Sh DIAGNOSTICS
>  .Bl -diag
>  .It "est%d:  on cpu%d"
> -.It \&
> +.Pp
>  Indicates normal startup of this interface.
>  .It "est: CPU supports Enhanced Speedstep, but is not recognized."
>  .It "est: cpu_vendor GenuineIntel, msr 471c471c0600471c"
>  .It "device_attach: est2 attach returned 6"
> -.It \&
> +.Pp
>  Indicates all attempts to attach to this interface have failed.
>  This usually indicates and improper BIOS setting restricting O/S
>  control of the CPU speeds.  Consult your BIOS documentation for

  ^^
Oops, I missed a newline wrap here. :/

Glen

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: est man page

2012-06-12 Thread Hiroki Sato
Sean Bruno  wrote
  in <1339531057.42366.2.ca...@powernoodle.corp.yahoo.com>:

se> On Tue, 2012-06-05 at 14:13 -0700, Sean Bruno wrote:
se> > On Tue, 2012-06-05 at 11:55 -0700, Sean Bruno wrote:
se>
se>
se>
se> allrighty, after some doc reviews by Glen, I've thwacked together a
se> quick and dirty est(4).
se>
se> Any objections?
se>
se> http://people.freebsd.org/~sbruno/est_man.txt

 Looks good.  Attached a diff for some small fixes.

se> view via:
se> groff -S -P-h -Wall -mtty-char -man -Tascii est_man.txt | less

 % man $PWD/est_man.txt

 may be easier :)

-- Hiroki
--- est_man.txt.orig	2012-06-13 11:06:23.0 +0900
+++ est_man.txt	2012-06-13 11:39:12.0 +0900
@@ -23,6 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
+.\" $FreeBSD$
 .\"
 .Dd June 12, 2012
 .Dt EST 4
@@ -36,7 +37,7 @@
 configuration file:
 .Bd -ragged -offset indent
 .Cd "device cpufreq"
-.Ep
+.Ed
 .Sh DESCRIPTION
 The
 .Nm
@@ -72,12 +73,12 @@
 .Sh DIAGNOSTICS
 .Bl -diag
 .It "est%d:  on cpu%d"
-.It \&
+.Pp
 Indicates normal startup of this interface.
 .It "est: CPU supports Enhanced Speedstep, but is not recognized."
 .It "est: cpu_vendor GenuineIntel, msr 471c471c0600471c"
 .It "device_attach: est2 attach returned 6"
-.It \&
+.Pp
 Indicates all attempts to attach to this interface have failed.
 This usually indicates and improper BIOS setting restricting O/S
 control of the CPU speeds.  Consult your BIOS documentation for
@@ -87,12 +88,13 @@
 .Nm
 is only found on supported Intel CPUs.
 .Sh SEE ALSO
-.Xr cpufreq 4 ,
+.Xr cpufreq 4
 .Sh SUPPORT
 For general information and support,
 go to the Intel 64 and IA-32 Architectures Software Developer
 Manuals site.
 .Pa http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
+.Sh AUTHORS
 .Pp
 This manual page was written by
 .An Sean Bruno Aq sbr...@freebsd.org .
.\"
.\" Copyright (c) 2012 Sean Bruno 
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"notice, this list of conditions and the following disclaimer in the
.\"documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd June 12, 2012
.Dt EST 4
.Os
.Sh NAME
.Nm est
.Nd Enhanced Speedstep Technology
.Sh SYNOPSIS
To compile this capability into your kernel
place the following lines in your kernel
configuration file:
.Bd -ragged -offset indent
.Cd "device cpufreq"
.Ed
.Sh DESCRIPTION
The
.Nm
interface that provides support for the Intel Enhanced Speedstep Technology
.Pp
Note that the
.Nm
driver is automatically loaded by the
.Xr cpufreq 4
driver.
.Sh LOADER TUNABLES
The
.Nm
interface is intended to allow
.Xr cpufreq 4
to access and implement Intel Enhanced SpeedStep Technology via
.Xr acpi 4
and the acpi_perf interface accessors.
If the default settings are not optimal, the following sysctls can be
used to modify or monitor
.Nm
behavior.
.Bl -tag -width indent
.It hw.est.msr_info
Attempt to infer information from direct probing of the msr.
Should only be used in diagnostic cases.
.Pq default 0
.It hw.est.strict
Do not allow different cpus to be set to different frequencies.
It appears that this will only work on i386 systems.
.Pq default 0
.El
.Sh DIAGNOSTICS
.Bl -diag
.It "est%d:  on cpu%d"
.Pp
Indicates normal startup of this interface.
.It "est: CPU supports Enhanced Speedstep, but is not recognized."
.It "est: cpu_vendor GenuineIntel, msr 471c471c0600471c"
.It "device_attach: est2 attach returned 6"
.Pp
Indicates all attempts to attach to this interface have failed.
This usually indicates and improper BIOS setting restricting O/S
control of the CPU speeds.  Consult your BIOS documentation for
more details.
.El
.Sh COMPATIBILITY
.Nm
is only found on supported Intel CPUs.
.Sh SEE ALSO
.Xr cpufreq 4
.Sh SUPPORT
For general information and support,
go to the Intel 64 and IA

Re: Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM

2012-06-12 Thread Ian Lepore
On Tue, 2012-06-12 at 23:26 +0300, Konstantin Belousov wrote:
> On Tue, Jun 12, 2012 at 05:56:12PM +0200, Jan Sieka wrote:
> > Both versions work indeed. I have analysed other architectures' 
> > lib/libc//Symbol.map files and __flt_rounds should go into FBSD_ and 
> > *not* into FBSDprivate section. I have verified that at least one of the 
> > Perl's libraries (POSIX.so) links to __flt_rounds. Python also links to 
> > this function. So to the best of my knowledge current patch is the 
> > righteous one.
> 
> Let me restate my point again. It does not matter whether some application
> uses the symbol. It does matter whether the symbol is considered the part
> of exported stable ABI, intended for use by applications. If it is, then
> FBSD_1.X is the right namespace, otherwise symbol should be moved to
> private and existing usage fixed.

The standard C macro FLT_ROUNDS from float.h expands to the reference to
__flt_rounds; it's intended for use by applications.

-- Ian


___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


panic td->td_lock == NULL in scheduler(), csup'd 2011-02-19

2012-06-12 Thread Benjamin Kaduk

Hi all,

I know, I should update the machine, but I figured I would throw this out 
for the archives anyway.


I saw the panic a few minutes after starting X, but I'm pretty sure I was 
not actually swapping.  In ddb (blind), I ran 'call doadump; show 
alllocks; show lockedvnods; call doadump; reboot' ... I'm not sure whether 
the two 'doadump's will cause any issues with the core.


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x18
fault code  = supervisor read data, page not present
instruction pointer = 0x20:0x806d7dce
stack pointer   = 0x28:0x81381c40
frame pointer   = 0x28:0x81381ca0
code segment= base 0x0, limit 0xf, type 0x1b
 = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags= resume, IOPL = 0
current process = 0 (swapper)
#7  0x809e20a5 in trap (frame=0x81381b90)
 at /usr/src/sys/amd64/amd64/trap.c:319
#8  0x809cc6ef in calltrap ()
 at /usr/src/sys/amd64/amd64/exception.S:228
#9  0x806d7dce in _thread_lock_flags (td=0xfe003b14d8c0, opts=0,
 file=0x80b4b720 "/usr/src/sys/vm/vm_glue.c", line=744)
 at /usr/src/sys/kern/kern_mutex.c:560
#10 0x8094b395 in scheduler (dummy=Variable "dummy" is not available.
) at /usr/src/sys/vm/vm_glue.c:744
#11 0x8069f8c7 in mi_startup () at /usr/src/sys/kern/init_main.c:256
#12 0x80292f2c in btext () at /usr/src/sys/amd64/amd64/locore.S:81
#13 0x in ?? ()
#14 0x80eff8a0 in cpu_top ()
#15 0x80eff900 in affinity ()
#16 0xfe00025f8000 in ?? ()
#17 0x81381b60 in ?? ()
#18 0x81381b08 in ?? ()
#19 0x80ee6030 in proc0 ()
#20 0x8070e5d2 in sched_switch (td=0x0, newtd=0x0, flags=Variable 
"flags" is not available.

)
 at /usr/src/sys/kern/sched_ule.c:1847

I verified that td->td_lock was null using kgdb on the coredump.

kern_mutex.c:
 558 retry:
 559 spinlock_enter();
 560 m = td->td_lock;
 561 KASSERT(m->mtx_lock != MTX_DESTROYED,
 562 ("thread_lock() of destroyed mutex @ %s:%d", file, 
l

vm_glue.c:
 738 FOREACH_THREAD_IN_PROC(p, td) {
 739 /*
 740  * An otherwise runnable thread of a process
 741  * swapped out has only the TDI_SWAPPED bit 
set.
 742  *
 743  */
 744 thread_lock(td);
 745 if (td->td_inhibitors == TDI_SWAPPED) {

-Ben Kaduk
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Rudimentary DTrace IO provider going in in one week...

2012-06-12 Thread George Neville-Neil
Howdy,

I'd really like this code:

http://people.freebsd.org/~gnn/dtio_provider_2.diff

to get some review before I commit it to HEAD.  In particular I'd like
people to try and test it but also I want to know:

*) Is the code organization correct?

The way that DTrace was imported had some issues and I don't fix them here.

*) Are people OK with the module names?

I did what DTrace on Solaris did because that makes using scripts in the 
DTraceToolkit
an the DTrace book easier.

Best,
George

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM

2012-06-12 Thread Konstantin Belousov
On Tue, Jun 12, 2012 at 05:56:12PM +0200, Jan Sieka wrote:
> Both versions work indeed. I have analysed other architectures' 
> lib/libc//Symbol.map files and __flt_rounds should go into FBSD_ and 
> *not* into FBSDprivate section. I have verified that at least one of the 
> Perl's libraries (POSIX.so) links to __flt_rounds. Python also links to 
> this function. So to the best of my knowledge current patch is the 
> righteous one.

Let me restate my point again. It does not matter whether some application
uses the symbol. It does matter whether the symbol is considered the part
of exported stable ABI, intended for use by applications. If it is, then
FBSD_1.X is the right namespace, otherwise symbol should be moved to
private and existing usage fixed.


pgpUMOKO9KAex.pgp
Description: PGP signature


Re: est man page

2012-06-12 Thread Sean Bruno
On Tue, 2012-06-05 at 14:13 -0700, Sean Bruno wrote:
> On Tue, 2012-06-05 at 11:55 -0700, Sean Bruno wrote:



allrighty, after some doc reviews by Glen, I've thwacked together a
quick and dirty est(4).

Any objections?

http://people.freebsd.org/~sbruno/est_man.txt

view via:
groff -S -P-h -Wall -mtty-char -man -Tascii est_man.txt | less

Sean

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Why Are You NOT Using FreeBSD ?

2012-06-12 Thread Adrian Chadd
As I keep pointing out - if people want to make FreeBSD work on HPC,
please work on making it work. Either wade through the depths
yourself, or find a friendly developer who would like to wade through
the depths for you.

People are working on their areas of interest (paid, free, otherwise)
or non-interest (paid - free would be a bit scary.)

I highly doubt the FreeBSD developers would say no to someone popping
up and taking ownership of HPC on FreeBSD, then following it up by
making it work.


Adrian
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Why Are You NOT Using FreeBSD ?

2012-06-12 Thread C. P. Ghost
On Sun, Jun 10, 2012 at 2:23 PM, O. Hartmann
 wrote:
> A complete No-Go is the lack of CUDA and more important OpenCL
> capabilities and therefore GPGPU usage. As nVidia made clear in San
> Jose, CUDA, and therefore GPGPU, is a tremendous fast growing market. On
> all of our number crunchers we use now Linux - for exactly this GPGPU
> reason. And once seddled, I guess it is hard to convince people to move
> towards another OS.

This is really becoming a problem, and it's getting worse over time.
I've had to set aside a couple of dedicated Linux boxes to do OpenCL
number crunching with nVidia GPUs, because there simply was no
way to do that in FreeBSD at the moment. As far as I'm concerned,
FreeBSD and HPC don't match well right now, and it is a crying shame.

Save for this, everything else here still runs FreeBSD just fine.

-cpghost.

-- 
Cordula's Web. http://www.cordula.ws/
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


[head tinderbox] failure on amd64/amd64

2012-06-12 Thread FreeBSD Tinderbox
TB --- 2012-06-12 13:10:00 - tinderbox 2.9 running on freebsd-current.sentex.ca
TB --- 2012-06-12 13:10:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2012-06-12 13:10:00 - starting HEAD tinderbox run for amd64/amd64
TB --- 2012-06-12 13:10:00 - cleaning the object tree
TB --- 2012-06-12 13:10:00 - cvsupping the source tree
TB --- 2012-06-12 13:10:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca 
/tinderbox/HEAD/amd64/amd64/supfile
TB --- 2012-06-12 13:12:31 - building world
TB --- 2012-06-12 13:12:31 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 13:12:31 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 13:12:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 13:12:31 - SRCCONF=/dev/null
TB --- 2012-06-12 13:12:31 - TARGET=amd64
TB --- 2012-06-12 13:12:31 - TARGET_ARCH=amd64
TB --- 2012-06-12 13:12:31 - TZ=UTC
TB --- 2012-06-12 13:12:31 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 13:12:31 - cd /src
TB --- 2012-06-12 13:12:31 - /usr/bin/make -B buildworld
>>> World build started on Tue Jun 12 13:12:32 UTC 2012
>>> Rebuilding the temporary build tree
>>> stage 1.1: legacy release compatibility shims
>>> stage 1.2: bootstrap tools
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3: cross tools
>>> stage 4.1: building includes
>>> stage 4.2: building libraries
>>> stage 4.3: make dependencies
>>> stage 4.4: building everything
>>> stage 5.1: building 32 bit shim libraries
>>> World build completed on Tue Jun 12 16:11:45 UTC 2012
TB --- 2012-06-12 16:11:45 - generating LINT kernel config
TB --- 2012-06-12 16:11:45 - cd /src/sys/amd64/conf
TB --- 2012-06-12 16:11:45 - /usr/bin/make -B LINT
TB --- 2012-06-12 16:11:45 - cd /src/sys/amd64/conf
TB --- 2012-06-12 16:11:45 - /usr/sbin/config -m LINT
TB --- 2012-06-12 16:11:45 - building LINT kernel
TB --- 2012-06-12 16:11:45 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 16:11:45 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 16:11:45 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 16:11:45 - SRCCONF=/dev/null
TB --- 2012-06-12 16:11:45 - TARGET=amd64
TB --- 2012-06-12 16:11:45 - TARGET_ARCH=amd64
TB --- 2012-06-12 16:11:45 - TZ=UTC
TB --- 2012-06-12 16:11:45 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 16:11:45 - cd /src
TB --- 2012-06-12 16:11:45 - /usr/bin/make -B buildkernel KERNCONF=LINT
>>> Kernel build for LINT started on Tue Jun 12 16:11:45 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
[...]
cc -c -O2 -frename-registers -pipe -fno-strict-aliasing  -std=c99  -Wall 
-Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes 
-Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign 
-fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option   
-nostdinc  -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL 
-DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common 
-finline-limit=8000 --param inline-unit-growth=100 --param 
large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF 
-fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx 
-mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding 
-fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/net/if_gif.c
/src/sys/net/if_gif.c: In function 'gif_start':
/src/sys/net/if_gif.c:364: error: 'IFF_GIF_WANTED' undeclared (first use in 
this function)
/src/sys/net/if_gif.c:364: error: (Each undeclared identifier is reported only 
once
/src/sys/net/if_gif.c:364: error: for each function it appears in.)
/src/sys/net/if_gif.c:391: error: 'struct pkthdr' has no member named 
'src_mac_addr'
/src/sys/net/if_gif.c: In function 'gif_output':
/src/sys/net/if_gif.c:509: error: 'struct pkthdr' has no member named 
'src_mac_addr'
*** Error code 1

Stop in /obj/amd64.amd64/src/sys/LINT.
*** Error code 1

Stop in /src.
*** Error code 1

Stop in /src.
TB --- 2012-06-12 16:26:35 - WARNING: /usr/bin/make returned exit code  1 
TB --- 2012-06-12 16:26:35 - ERROR: failed to build LINT kernel
TB --- 2012-06-12 16:26:35 - 8513.15 user 1297.34 system 11795.61 real


http://tinderbox.freebsd.org/tinderbox-head-HEAD-amd64-amd64.full
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM

2012-06-12 Thread Jan Sieka

On 2012.06.12 10:49, Konstantin Belousov wrote:

On Tue, Jun 12, 2012 at 10:18:58AM +0200, Jan Sieka wrote:

On 2012.06.09 18:11, Tim Kientzle wrote:


On Jun 5, 2012, at 8:09 AM, Jan Sieka wrote:


Hello Ian!

I tried recently to compile and run Perl 5.12 on ARM (SheevaPlug) using
HEAD from 22.05.2012 and got the following error while trying to run:
/usr/ports/lang/perl5.12 # make test
[...]
../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds
[...]

After investigating the issue it appeared that __flt_rounds symbol is
not exported by libc. Applying the following patch, recompilling world
and Perl fixed the problem and allowed to use Perl on SheevaPlug:

diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
index e8c7f1d..8cdcdaf 100644
--- a/lib/libc/arm/Symbol.map
+++ b/lib/libc/arm/Symbol.map
@@ -70,6 +70,7 @@ FBSDprivate_1.0 {
__divdf3;
__floatsisf;
__floatsidf;
+   __flt_rounds;
__fixsfsi;
__fixdfsi;
__fixunssfsi;

Can you comment whether this is a correct solution?


Great!  I had the same problem compiling Python last
week and had planned to track it down.

I just committed this to -CURRENT and will also
merge it to the armv6 tree.

Hello Tim!

Thanks for committing this but unfortunately that patch wasn't correct.
I had another discussion on freebsd-current@ (I forgot to do a
cross-list CC - now fixed) about how to add symbols to Symbols.map files
(see this thread:
http://lists.freebsd.org/pipermail/freebsd-current/2012-June/034511.html) and
from the answer and hints given by Konstantin Belousov I have prepared
another patch that adheres to library versioning guidelines. If nobody
objects this patch then feel free to commit it:

diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
index dc46013..48f6747 100644
--- a/lib/libc/arm/Symbol.map
+++ b/lib/libc/arm/Symbol.map
@@ -33,6 +33,10 @@ FBSD_1.0 {
 sbrk;
  };

+FBSD_1.3 {
+   __flt_rounds;
+};
+
  FBSDprivate_1.0 {
 /* PSEUDO syscalls */
 __sys_getlogin;

I have verified the above patch is working on SheevaPlug on FreeBSD
10-CURRENT from 2012-05-15 and Perl 5.12.4. Perl has to be recompiled
after applying this patch.

Well, both committed version and this version should work, the question
is which fix is right. Is __flt_rounds supposed to be linked to by
applications ? If the symbols are used by normal programs, that I think
we should indeed guarantee ABI stability for them, and FBSD_1.3
namespace is the right namespace to use.
Both versions work indeed. I have analysed other architectures' 
lib/libc//Symbol.map files and __flt_rounds should go into FBSD_ and *not* 
into FBSDprivate section. I have verified that at least one of the Perl's 
libraries (POSIX.so) links to __flt_rounds. Python also links to this function. 
So to the best of my knowledge current patch is the righteous one.


Best regards,

Jan Sieka

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


[head tinderbox] failure on i386/i386

2012-06-12 Thread FreeBSD Tinderbox
TB --- 2012-06-12 13:10:00 - tinderbox 2.9 running on freebsd-current.sentex.ca
TB --- 2012-06-12 13:10:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2012-06-12 13:10:00 - starting HEAD tinderbox run for i386/i386
TB --- 2012-06-12 13:10:00 - cleaning the object tree
TB --- 2012-06-12 13:10:00 - cvsupping the source tree
TB --- 2012-06-12 13:10:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca 
/tinderbox/HEAD/i386/i386/supfile
TB --- 2012-06-12 13:12:24 - building world
TB --- 2012-06-12 13:12:24 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 13:12:24 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 13:12:24 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 13:12:24 - SRCCONF=/dev/null
TB --- 2012-06-12 13:12:24 - TARGET=i386
TB --- 2012-06-12 13:12:24 - TARGET_ARCH=i386
TB --- 2012-06-12 13:12:24 - TZ=UTC
TB --- 2012-06-12 13:12:24 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 13:12:24 - cd /src
TB --- 2012-06-12 13:12:24 - /usr/bin/make -B buildworld
>>> World build started on Tue Jun 12 13:12:26 UTC 2012
>>> Rebuilding the temporary build tree
>>> stage 1.1: legacy release compatibility shims
>>> stage 1.2: bootstrap tools
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3: cross tools
>>> stage 4.1: building includes
>>> stage 4.2: building libraries
>>> stage 4.3: make dependencies
>>> stage 4.4: building everything
>>> World build completed on Tue Jun 12 15:37:52 UTC 2012
TB --- 2012-06-12 15:37:52 - generating LINT kernel config
TB --- 2012-06-12 15:37:52 - cd /src/sys/i386/conf
TB --- 2012-06-12 15:37:52 - /usr/bin/make -B LINT
TB --- 2012-06-12 15:37:52 - cd /src/sys/i386/conf
TB --- 2012-06-12 15:37:52 - /usr/sbin/config -m LINT
TB --- 2012-06-12 15:37:52 - building LINT kernel
TB --- 2012-06-12 15:37:52 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 15:37:52 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 15:37:52 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 15:37:52 - SRCCONF=/dev/null
TB --- 2012-06-12 15:37:52 - TARGET=i386
TB --- 2012-06-12 15:37:52 - TARGET_ARCH=i386
TB --- 2012-06-12 15:37:52 - TZ=UTC
TB --- 2012-06-12 15:37:52 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 15:37:52 - cd /src
TB --- 2012-06-12 15:37:52 - /usr/bin/make -B buildkernel KERNCONF=LINT
>>> Kernel build for LINT started on Tue Jun 12 15:37:52 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
[...]
cc -c -O2 -pipe -fno-strict-aliasing  -std=c99  -Wall -Wredundant-decls 
-Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith 
-Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  
-Wmissing-include-dirs -fdiagnostics-show-option   -nostdinc  -I. -I/src/sys 
-I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include 
opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 
--param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 
-DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 
-mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg 
-mprofiler-epilogue /src/sys/net/if_gif.c
/src/sys/net/if_gif.c: In function 'gif_start':
/src/sys/net/if_gif.c:364: error: 'IFF_GIF_WANTED' undeclared (first use in 
this function)
/src/sys/net/if_gif.c:364: error: (Each undeclared identifier is reported only 
once
/src/sys/net/if_gif.c:364: error: for each function it appears in.)
/src/sys/net/if_gif.c:391: error: 'struct pkthdr' has no member named 
'src_mac_addr'
/src/sys/net/if_gif.c: In function 'gif_output':
/src/sys/net/if_gif.c:509: error: 'struct pkthdr' has no member named 
'src_mac_addr'
*** Error code 1

Stop in /obj/i386.i386/src/sys/LINT.
*** Error code 1

Stop in /src.
*** Error code 1

Stop in /src.
TB --- 2012-06-12 15:54:08 - WARNING: /usr/bin/make returned exit code  1 
TB --- 2012-06-12 15:54:08 - ERROR: failed to build LINT kernel
TB --- 2012-06-12 15:54:08 - 7137.48 user 1001.95 system 9847.80 real


http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


[head tinderbox] failure on i386/pc98

2012-06-12 Thread FreeBSD Tinderbox
TB --- 2012-06-12 13:10:00 - tinderbox 2.9 running on freebsd-current.sentex.ca
TB --- 2012-06-12 13:10:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2012-06-12 13:10:00 - starting HEAD tinderbox run for i386/pc98
TB --- 2012-06-12 13:10:00 - cleaning the object tree
TB --- 2012-06-12 13:10:00 - cvsupping the source tree
TB --- 2012-06-12 13:10:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca 
/tinderbox/HEAD/i386/pc98/supfile
TB --- 2012-06-12 13:16:39 - building world
TB --- 2012-06-12 13:16:39 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 13:16:39 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 13:16:39 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 13:16:39 - SRCCONF=/dev/null
TB --- 2012-06-12 13:16:39 - TARGET=pc98
TB --- 2012-06-12 13:16:39 - TARGET_ARCH=i386
TB --- 2012-06-12 13:16:39 - TZ=UTC
TB --- 2012-06-12 13:16:39 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 13:16:39 - cd /src
TB --- 2012-06-12 13:16:39 - /usr/bin/make -B buildworld
>>> World build started on Tue Jun 12 13:16:40 UTC 2012
>>> Rebuilding the temporary build tree
>>> stage 1.1: legacy release compatibility shims
>>> stage 1.2: bootstrap tools
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3: cross tools
>>> stage 4.1: building includes
>>> stage 4.2: building libraries
>>> stage 4.3: make dependencies
>>> stage 4.4: building everything
>>> World build completed on Tue Jun 12 15:38:56 UTC 2012
TB --- 2012-06-12 15:38:56 - generating LINT kernel config
TB --- 2012-06-12 15:38:56 - cd /src/sys/pc98/conf
TB --- 2012-06-12 15:38:56 - /usr/bin/make -B LINT
TB --- 2012-06-12 15:38:56 - cd /src/sys/pc98/conf
TB --- 2012-06-12 15:38:56 - /usr/sbin/config -m LINT
TB --- 2012-06-12 15:38:57 - building LINT kernel
TB --- 2012-06-12 15:38:57 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 15:38:57 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 15:38:57 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 15:38:57 - SRCCONF=/dev/null
TB --- 2012-06-12 15:38:57 - TARGET=pc98
TB --- 2012-06-12 15:38:57 - TARGET_ARCH=i386
TB --- 2012-06-12 15:38:57 - TZ=UTC
TB --- 2012-06-12 15:38:57 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 15:38:57 - cd /src
TB --- 2012-06-12 15:38:57 - /usr/bin/make -B buildkernel KERNCONF=LINT
>>> Kernel build for LINT started on Tue Jun 12 15:38:57 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
[...]
cc -c -O2 -pipe -fno-strict-aliasing  -std=c99  -Wall -Wredundant-decls 
-Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith 
-Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  
-Wmissing-include-dirs -fdiagnostics-show-option   -nostdinc  -I. -I/src/sys 
-I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include 
opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 
--param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 
-DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 
-mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg 
-mprofiler-epilogue /src/sys/net/if_gif.c
/src/sys/net/if_gif.c: In function 'gif_start':
/src/sys/net/if_gif.c:364: error: 'IFF_GIF_WANTED' undeclared (first use in 
this function)
/src/sys/net/if_gif.c:364: error: (Each undeclared identifier is reported only 
once
/src/sys/net/if_gif.c:364: error: for each function it appears in.)
/src/sys/net/if_gif.c:391: error: 'struct pkthdr' has no member named 
'src_mac_addr'
/src/sys/net/if_gif.c: In function 'gif_output':
/src/sys/net/if_gif.c:509: error: 'struct pkthdr' has no member named 
'src_mac_addr'
*** Error code 1

Stop in /obj/pc98.i386/src/sys/LINT.
*** Error code 1

Stop in /src.
*** Error code 1

Stop in /src.
TB --- 2012-06-12 15:53:19 - WARNING: /usr/bin/make returned exit code  1 
TB --- 2012-06-12 15:53:19 - ERROR: failed to build LINT kernel
TB --- 2012-06-12 15:53:19 - 6997.03 user 983.02 system 9798.93 real


http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


[head tinderbox] failure on arm/arm

2012-06-12 Thread FreeBSD Tinderbox
TB --- 2012-06-12 13:10:00 - tinderbox 2.9 running on freebsd-current.sentex.ca
TB --- 2012-06-12 13:10:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2012-06-12 13:10:00 - starting HEAD tinderbox run for arm/arm
TB --- 2012-06-12 13:10:00 - cleaning the object tree
TB --- 2012-06-12 13:10:00 - cvsupping the source tree
TB --- 2012-06-12 13:10:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca 
/tinderbox/HEAD/arm/arm/supfile
TB --- 2012-06-12 13:12:32 - building world
TB --- 2012-06-12 13:12:32 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 13:12:32 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 13:12:32 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 13:12:32 - SRCCONF=/dev/null
TB --- 2012-06-12 13:12:32 - TARGET=arm
TB --- 2012-06-12 13:12:32 - TARGET_ARCH=arm
TB --- 2012-06-12 13:12:32 - TZ=UTC
TB --- 2012-06-12 13:12:32 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 13:12:32 - cd /src
TB --- 2012-06-12 13:12:32 - /usr/bin/make -B buildworld
>>> World build started on Tue Jun 12 13:12:33 UTC 2012
>>> Rebuilding the temporary build tree
>>> stage 1.1: legacy release compatibility shims
>>> stage 1.2: bootstrap tools
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3: cross tools
>>> stage 4.1: building includes
>>> stage 4.2: building libraries
>>> stage 4.3: make dependencies
>>> stage 4.4: building everything
>>> World build completed on Tue Jun 12 14:12:27 UTC 2012
TB --- 2012-06-12 14:12:27 - cd /src/sys/arm/conf
TB --- 2012-06-12 14:12:27 - /usr/sbin/config -m AVILA
TB --- 2012-06-12 14:12:28 - building AVILA kernel
TB --- 2012-06-12 14:12:28 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 14:12:28 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 14:12:28 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 14:12:28 - SRCCONF=/dev/null
TB --- 2012-06-12 14:12:28 - TARGET=arm
TB --- 2012-06-12 14:12:28 - TARGET_ARCH=arm
TB --- 2012-06-12 14:12:28 - TZ=UTC
TB --- 2012-06-12 14:12:28 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 14:12:28 - cd /src
TB --- 2012-06-12 14:12:28 - /usr/bin/make -B buildkernel KERNCONF=AVILA
>>> Kernel build for AVILA started on Tue Jun 12 14:12:28 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
>>> Kernel build for AVILA completed on Tue Jun 12 14:15:36 UTC 2012
TB --- 2012-06-12 14:15:36 - cd /src/sys/arm/conf
TB --- 2012-06-12 14:15:36 - /usr/sbin/config -m BWCT
TB --- 2012-06-12 14:15:36 - building BWCT kernel
TB --- 2012-06-12 14:15:36 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 14:15:36 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 14:15:36 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 14:15:36 - SRCCONF=/dev/null
TB --- 2012-06-12 14:15:36 - TARGET=arm
TB --- 2012-06-12 14:15:36 - TARGET_ARCH=arm
TB --- 2012-06-12 14:15:36 - TZ=UTC
TB --- 2012-06-12 14:15:36 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 14:15:36 - cd /src
TB --- 2012-06-12 14:15:36 - /usr/bin/make -B buildkernel KERNCONF=BWCT
>>> Kernel build for BWCT started on Tue Jun 12 14:15:36 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
>>> Kernel build for BWCT completed on Tue Jun 12 14:17:44 UTC 2012
TB --- 2012-06-12 14:17:44 - cd /src/sys/arm/conf
TB --- 2012-06-12 14:17:44 - /usr/sbin/config -m CAMBRIA
TB --- 2012-06-12 14:17:44 - building CAMBRIA kernel
TB --- 2012-06-12 14:17:44 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 14:17:44 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 14:17:44 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 14:17:44 - SRCCONF=/dev/null
TB --- 2012-06-12 14:17:44 - TARGET=arm
TB --- 2012-06-12 14:17:44 - TARGET_ARCH=arm
TB --- 2012-06-12 14:17:44 - TZ=UTC
TB --- 2012-06-12 14:17:44 - __MAKE_CONF=/dev/null
TB --- 2012-06-12 14:17:44 - cd /src
TB --- 2012-06-12 14:17:44 - /usr/bin/make -B buildkernel KERNCONF=CAMBRIA
>>> Kernel build for CAMBRIA started on Tue Jun 12 14:17:44 UTC 2012
>>> stage 1: configuring the kernel
>>> stage 2.1: cleaning up the object tree
>>> stage 2.2: rebuilding the object tree
>>> stage 2.3: build tools
>>> stage 3.1: making dependencies
>>> stage 3.2: building everything
>>> Kernel build for CAMBRIA completed on Tue Jun 12 14:20:41 UTC 2012
TB --- 2012-06-12 14:20:41 - cd /src/sys/arm/conf
TB --- 2012-06-12 14:20:41 - /usr/sbin/config -m CNS11XXNAS
TB --- 2012-06-12 14:20:41 - building CNS11XXNAS kernel
TB --- 2012-06-12 14:20:41 - CROSS_BUILD_TESTING=YES
TB --- 2012-06-12 14:20:41 - MAKEOBJDIRPREFIX=/obj
TB --- 2012-06-12 14:20:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2012-06-12 14:20:41 - SR

Re: Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM

2012-06-12 Thread Konstantin Belousov
On Tue, Jun 12, 2012 at 10:18:58AM +0200, Jan Sieka wrote:
> On 2012.06.09 18:11, Tim Kientzle wrote:
> > 
> > On Jun 5, 2012, at 8:09 AM, Jan Sieka wrote:
> > 
> >> Hello Ian!
> >>
> >> I tried recently to compile and run Perl 5.12 on ARM (SheevaPlug) using
> >> HEAD from 22.05.2012 and got the following error while trying to run:
> >> /usr/ports/lang/perl5.12 # make test
> >> [...]
> >> ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds
> >> [...]
> >>
> >> After investigating the issue it appeared that __flt_rounds symbol is
> >> not exported by libc. Applying the following patch, recompilling world
> >> and Perl fixed the problem and allowed to use Perl on SheevaPlug:
> >>
> >> diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
> >> index e8c7f1d..8cdcdaf 100644
> >> --- a/lib/libc/arm/Symbol.map
> >> +++ b/lib/libc/arm/Symbol.map
> >> @@ -70,6 +70,7 @@ FBSDprivate_1.0 {
> >>__divdf3;
> >>__floatsisf;
> >>__floatsidf;
> >> +   __flt_rounds;
> >>__fixsfsi;
> >>__fixdfsi;
> >>__fixunssfsi;
> >>
> >> Can you comment whether this is a correct solution?
> > 
> > Great!  I had the same problem compiling Python last
> > week and had planned to track it down.
> > 
> > I just committed this to -CURRENT and will also
> > merge it to the armv6 tree.
> Hello Tim!
> 
> Thanks for committing this but unfortunately that patch wasn't correct.
> I had another discussion on freebsd-current@ (I forgot to do a
> cross-list CC - now fixed) about how to add symbols to Symbols.map files
> (see this thread:
> http://lists.freebsd.org/pipermail/freebsd-current/2012-June/034511.html) and
> from the answer and hints given by Konstantin Belousov I have prepared
> another patch that adheres to library versioning guidelines. If nobody
> objects this patch then feel free to commit it:
> 
> diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
> index dc46013..48f6747 100644
> --- a/lib/libc/arm/Symbol.map
> +++ b/lib/libc/arm/Symbol.map
> @@ -33,6 +33,10 @@ FBSD_1.0 {
> sbrk;
>  };
> 
> +FBSD_1.3 {
> +   __flt_rounds;
> +};
> +
>  FBSDprivate_1.0 {
> /* PSEUDO syscalls */
> __sys_getlogin;
> 
> I have verified the above patch is working on SheevaPlug on FreeBSD
> 10-CURRENT from 2012-05-15 and Perl 5.12.4. Perl has to be recompiled
> after applying this patch.
Well, both committed version and this version should work, the question
is which fix is right. Is __flt_rounds supposed to be linked to by
applications ? If the symbols are used by normal programs, that I think
we should indeed guarantee ABI stability for them, and FBSD_1.3
namespace is the right namespace to use.

I noted that the commit in question added the __flt_rounds symbol to the
existing group of symbols probably related to FPU handling. The same
question stands for that symbols too, is their placement into
FBSDprivate namespace right ?


pgpzH2kDKCCfd.pgp
Description: PGP signature


Re: How to add symbol to be exported in lib/libc/arm/Symbol.map

2012-06-12 Thread Jan Sieka
On 2012.06.08 19:04, Konstantin Belousov wrote:
> On Fri, Jun 08, 2012 at 02:51:09PM +0200, Jan Sieka wrote:
>> Hello group!
>>
>> I have a few questions regarding adding symbols to
>> lib/libc//Symbol.map, so that function signatures are exported:
>> - what are the conventions regarding putting symbols in FBSD_X.Y or
>> FBSDprivate_X.Y sections of the aforementioned files?
> FBSD_X.Y are for public interfaces, i.e. non-system code is supposed to
> link to symbols from that versions. FBSDprivate is for exclusive base
> system use (so to say). We do not guarantee ABI stability for private.
> 
>> - when it is necessary to bump X.Y numbers?
> Currently, it is done when major branch is created.
> 
>> - what is the difference between FBSD_X.Y and FBSDprivate_X.Y sections?
> This is a repeat.
> 
>>
>> The above questions arose from the discussion on freebsd-arm@
>> (http://lists.freebsd.org/pipermail/freebsd-arm/2012-June/003555.html)
>> which concerns fixing Perl on ARM. The fix is to add __flt_rounds
>> function signature to lib/libc/arm/Symbols.map. Regarding this fix it
>> appears (after Symbols.map files analysis and checking their SVN
>> history) that adding this symbol is just a bug fix and should be put to
>> FBSD_1.0 section without incrementing numbers. But I don't have more
>> in-depth explanation so sending this email.
> No, since you are adding it in the CURRENT-10 timeframe, it goes
> to FBSD_1.3.
> 
>>
>> Anyone can comment on the above questions or point to some documentation
>> (I've searched Developer's Handbook and Internet but found nothing)?
> http://people.freebsd.org/~deischen/symver/freebsd_versioning.txt
> 
> In fact, I do not like this policy, and would some day write a proposal,
> which essentially requests creation of separate version for each ABI change.
> But what is referenced is the current accepted project policy.
Thanks for response and hints. I have prepared patch according to the
above guidelines and sent it for comments in the aforementioned thread
on freebsd-arm@ (I also have CC-ed it to current@).

Best regards,

Jan Sieka
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: Possible fix for Perl failing with ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds" on ARM

2012-06-12 Thread Jan Sieka
On 2012.06.09 18:11, Tim Kientzle wrote:
> 
> On Jun 5, 2012, at 8:09 AM, Jan Sieka wrote:
> 
>> Hello Ian!
>>
>> I tried recently to compile and run Perl 5.12 on ARM (SheevaPlug) using
>> HEAD from 22.05.2012 and got the following error while trying to run:
>> /usr/ports/lang/perl5.12 # make test
>> [...]
>> ../lib/auto/POSIX/POSIX.so: Undefined symbol "__flt_rounds
>> [...]
>>
>> After investigating the issue it appeared that __flt_rounds symbol is
>> not exported by libc. Applying the following patch, recompilling world
>> and Perl fixed the problem and allowed to use Perl on SheevaPlug:
>>
>> diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
>> index e8c7f1d..8cdcdaf 100644
>> --- a/lib/libc/arm/Symbol.map
>> +++ b/lib/libc/arm/Symbol.map
>> @@ -70,6 +70,7 @@ FBSDprivate_1.0 {
>>__divdf3;
>>__floatsisf;
>>__floatsidf;
>> +   __flt_rounds;
>>__fixsfsi;
>>__fixdfsi;
>>__fixunssfsi;
>>
>> Can you comment whether this is a correct solution?
> 
> Great!  I had the same problem compiling Python last
> week and had planned to track it down.
> 
> I just committed this to -CURRENT and will also
> merge it to the armv6 tree.
Hello Tim!

Thanks for committing this but unfortunately that patch wasn't correct.
I had another discussion on freebsd-current@ (I forgot to do a
cross-list CC - now fixed) about how to add symbols to Symbols.map files
(see this thread:
http://lists.freebsd.org/pipermail/freebsd-current/2012-June/034511.html) and
from the answer and hints given by Konstantin Belousov I have prepared
another patch that adheres to library versioning guidelines. If nobody
objects this patch then feel free to commit it:

diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
index dc46013..48f6747 100644
--- a/lib/libc/arm/Symbol.map
+++ b/lib/libc/arm/Symbol.map
@@ -33,6 +33,10 @@ FBSD_1.0 {
sbrk;
 };

+FBSD_1.3 {
+   __flt_rounds;
+};
+
 FBSDprivate_1.0 {
/* PSEUDO syscalls */
__sys_getlogin;

I have verified the above patch is working on SheevaPlug on FreeBSD
10-CURRENT from 2012-05-15 and Perl 5.12.4. Perl has to be recompiled
after applying this patch.

Best regards,

Jan Sieka
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"