Re: est man page
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
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
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
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...
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
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
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 ?
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 ?
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
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
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
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
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
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
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
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
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"