Re: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Bartosz Stec

W dniu 2011-06-15 14:23, Holger Kipp pisze:

Dear all,

I had installed FreeBSD 9 amd64 from snapshot (ISO-image) located here:
ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/201101/FreeBSD-9.0-CURRENT-201101-amd64-dvd1.iso

Today I wanted to cvsup to a later date to upgrade to ZFS v28
and compiled port /usr/ports/net/cvsup-without-gui without problems.

Starting freshly compiled cvsup then gives me

"Illegal Instruction"

This error seems to be identical to 
http://lists.freebsd.org/pipermail/freebsd-current/2010-September/020083.html

As this was created on a vanilla 9 snapshot using the default make.conf with 
only cvsup settings adapted I thought this might be of interest.

Have now used csup instead of cvsup (which seems to have worked fine), and started cvsup 
once again (seems cvsup only gives "Illegal Instruction" when a file needs to 
be changed...).

Any ideas?

Best regards,
Holger

Although it's not a "fix" to your problem, doesn't cvsup became 
obsolete, from the moment when csup was integrated into the world (a 
couple of years ago I believe)?

If you just want to update the ports tree, use csup.

--
Bartosz Stec


___
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: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Bartosz Stec

W dniu 2011-06-15 14:23, Holger Kipp pisze:

Have now used csup instead of cvsup (which seems to have worked fine), and started cvsup 
once again (seems cvsup only gives "Illegal Instruction" when a file needs to 
be changed...).

Any ideas?
Whoops, I read your message too fast, apologize. Please ignore my 
previous email :)


--
Bartosz Stec


___
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: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Eric McCorkle

On 6/15/11 8:23 AM, Holger Kipp wrote:

Dear all,

I had installed FreeBSD 9 amd64 from snapshot (ISO-image) located here:
ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/201101/FreeBSD-9.0-CURRENT-201101-amd64-dvd1.iso 



Today I wanted to cvsup to a later date to upgrade to ZFS v28
and compiled port /usr/ports/net/cvsup-without-gui without problems.

Starting freshly compiled cvsup then gives me

"Illegal Instruction"

This error seems to be identical to 
http://lists.freebsd.org/pipermail/freebsd-current/2010-September/020083.html 



I've gotten the same problem, and managed to diagnose it.  The problem 
actually isn't an illegal instruction, but a stack misalignment.  If you 
load it in gdb, it will die with SIGSEGV somewhere in libc.so.7, on a 
callq instruction.  This is because callq needs the stack to be 16-byte 
aligned, and it's not for some reason.


As for why it's not aligned, I don't know.

--
Eric McCorkle
Computer Science Ph.D Student,
University of Massachusetts
Research Intern, IBM Research
___
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: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Kostik Belousov
On Wed, Jun 15, 2011 at 10:24:46AM -0400, Eric McCorkle wrote:
> On 6/15/11 8:23 AM, Holger Kipp wrote:
> >Dear all,
> >
> >I had installed FreeBSD 9 amd64 from snapshot (ISO-image) located here:
> >ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/201101/FreeBSD-9.0-CURRENT-201101-amd64-dvd1.iso
> > 
> >
> >
> >Today I wanted to cvsup to a later date to upgrade to ZFS v28
> >and compiled port /usr/ports/net/cvsup-without-gui without problems.
> >
> >Starting freshly compiled cvsup then gives me
> >
> >"Illegal Instruction"
> >
> >This error seems to be identical to 
> >http://lists.freebsd.org/pipermail/freebsd-current/2010-September/020083.html
> > 
> >
> 
> I've gotten the same problem, and managed to diagnose it.  The problem 
> actually isn't an illegal instruction, but a stack misalignment.  If you 
> load it in gdb, it will die with SIGSEGV somewhere in libc.so.7, on a 
> callq instruction.  This is because callq needs the stack to be 16-byte 
> aligned, and it's not for some reason.
Stack alignment requirement is an ABI convention, and it is not enforced
by CPU, except several special cases. In particular, either EFLAGS.AC
bit should be set, that usually is not, or SSE instruction explicitely
disallowing non-aligned access executed. Anyway, you will not get
Illegal instruction fault for unaligned access.

> 
> As for why it's not aligned, I don't know.
> 
> -- 
> Eric McCorkle
> Computer Science Ph.D Student,
> University of Massachusetts
> Research Intern, IBM Research
> ___
> 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"


pgpbOT6ivEoap.pgp
Description: PGP signature


Re: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Eric McCorkle

On 6/15/11 10:46 AM, Holger Kipp wrote:

Ah, ok.

Do we have a compiler switch to force stack alignment to 16-Byte-boundaries? 
Otherwise I am really concerned that we might have similar wrong pieces of code 
lurking unnoticed in other binaries as well :-/

My cvsup binary is:

# file /usr/local/bin/cvsup
/usr/local/bin/cvsup: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), 
dynamically linked (uses shared libs), for FreeBSD 9.0 (900029), stripped

Best regards,
Holger

(Accidentally replied directly to you, cc'ing list)

It's certainly possible, though GCC aligns the stack correctly, or else 
nothing would work.  CVSup is written in Modula 3.  I checked the stack 
alignment option for FBSD_AMD64, and it is sure enough set to 16.  My 
guess is somewhere in the native call interface, something's not being 
done right.


I ran into a similar problem when porting the mlton compiler to Mac OS a 
couple of years back.


--
Eric McCorkle
Computer Science Ph.D student,
University of Massachusetts
Research Intern, IBM Research
___
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: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Holger Kipp
Ah, ok.

Do we have a compiler switch to force stack alignment to 16-Byte-boundaries? 
Otherwise I am really concerned that we might have similar wrong pieces of code 
lurking unnoticed in other binaries as well :-/

My cvsup binary is:

# file /usr/local/bin/cvsup
/usr/local/bin/cvsup: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), 
dynamically linked (uses shared libs), for FreeBSD 9.0 (900029), stripped

Best regards,
Holger


From: owner-freebsd-curr...@freebsd.org [owner-freebsd-curr...@freebsd.org] on 
behalf of Eric McCorkle [e...@shadowsun.net]
Sent: 15 June 2011 16:24
To: freebsd-current@freebsd.org
Subject: Re: problems with cvsup on FreeBSD 9 snapshot 201101

On 6/15/11 8:23 AM, Holger Kipp wrote:
> Dear all,
>
> I had installed FreeBSD 9 amd64 from snapshot (ISO-image) located here:
> ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/201101/FreeBSD-9.0-CURRENT-201101-amd64-dvd1.iso
>
>
> Today I wanted to cvsup to a later date to upgrade to ZFS v28
> and compiled port /usr/ports/net/cvsup-without-gui without problems.
>
> Starting freshly compiled cvsup then gives me
>
> "Illegal Instruction"
>
> This error seems to be identical to
> http://lists.freebsd.org/pipermail/freebsd-current/2010-September/020083.html
>

I've gotten the same problem, and managed to diagnose it.  The problem
actually isn't an illegal instruction, but a stack misalignment.  If you
load it in gdb, it will die with SIGSEGV somewhere in libc.so.7, on a
callq instruction.  This is because callq needs the stack to be 16-byte
aligned, and it's not for some reason.

As for why it's not aligned, I don't know.

--
Eric McCorkle
Computer Science Ph.D Student,
University of Massachusetts
Research Intern, IBM Research
___
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"


--
Holger Kipp
Diplom-Mathematiker
Senior Consultant

Tel. : +49 30 436 58 114
Fax. : +49 30 436 58 214
Mobil: +49 178 36 58 114
Email: holger.k...@alogis.com

alogis AG
Alt-Moabit 90b
D-10559 Berlin

web : http://www.alogis.com

--

alogis AG
Sitz/Registergericht: Berlin/AG Charlottenburg, HRB 71484
Vorstand: Arne Friedrichs, Joern Samuelson
Aufsichtsratsvorsitzender: Reinhard Mielke
___
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: problems with cvsup on FreeBSD 9 snapshot 201101

2011-06-15 Thread Eric McCorkle

On 6/15/11 10:58 AM, Kostik Belousov wrote:

On Wed, Jun 15, 2011 at 10:24:46AM -0400, Eric McCorkle wrote:

On 6/15/11 8:23 AM, Holger Kipp wrote:

Dear all,

I had installed FreeBSD 9 amd64 from snapshot (ISO-image) located here:
ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/201101/FreeBSD-9.0-CURRENT-201101-amd64-dvd1.iso


Today I wanted to cvsup to a later date to upgrade to ZFS v28
and compiled port /usr/ports/net/cvsup-without-gui without problems.

Starting freshly compiled cvsup then gives me

"Illegal Instruction"

This error seems to be identical to
http://lists.freebsd.org/pipermail/freebsd-current/2010-September/020083.html



I've gotten the same problem, and managed to diagnose it.  The problem
actually isn't an illegal instruction, but a stack misalignment.  If you
load it in gdb, it will die with SIGSEGV somewhere in libc.so.7, on a
callq instruction.  This is because callq needs the stack to be 16-byte
aligned, and it's not for some reason.

Stack alignment requirement is an ABI convention, and it is not enforced
by CPU, except several special cases. In particular, either EFLAGS.AC
bit should be set, that usually is not, or SSE instruction explicitely
disallowing non-aligned access executed. Anyway, you will not get
Illegal instruction fault for unaligned access.


I took a closer look this afternoon, and you're right.  callq with an 
unaligned stack pointer does *not* cause a fault.  If anyone does a 
movaps, however, you will get a fault (SIGBUS, I believe), and if the 
ABI says stacks are 16-byte aligned, then libraries may assume it's safe 
to load from the stack with movaps, and you'll get a fault.  This is 
what happened to mlton on Mac OS, so I thought it might be something 
similar going on here.


Anyways, I'll look into it more.
___
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"