Date: Thu, 5 Feb 2015 14:36:53 +0100 From: Eivind Evensen <eivinde@terraplane.org> To: freebsd-stable@freebsd.org Subject: Buserror when built on FreeBSD 10, not on FreeBSD 8 Message-ID: <20150205133653.GA16112@klump.hjerdalen.lokalnett>
next in thread | raw e-mail | index | archive | help
Hello.
After upgrading from FreeBSD 8 to 10, I have a problem I don't
understand, hopefully somebody here knows what is happening.
I have a project that uses both assembly and c. I started getting
bus errors after building on FreeBSD 10. I had, and may still have
some objects around from FreeBSD 8 and if I link those, on 10, they work.
I don't have any installations running 8 any longer though.
This is on amd64 platform.
I could reduce the problem to the following files.
makefile:
-----------------------------------------------
ASM ?= yasm
.c.o:
${CC} -g -c $<
.s.o:
${ASM} -felf64 -gdwarf2 $<
prgs: a1 a2
a1: s.o c1.o
${CC} -o$@ $>
a2: s.o c2.o
${CC} -o$@ $>
clean:
rm -f a1 a2 s.o c1.o c2.o
-------------------------------------------
s.s:
-------------------------------------------
global asmcode
extern cagain
asmcode:
call cagain
ret
-------------------------------------------
c1.c:
-------------------------------------------
#include <stdio.h>
void asmcode();
void cagain();
int main()
{ asmcode();
return(0);
}
void cagain()
{ printf("doesn't work\n");
}
--------------------------------------------
c2.c:
--------------------------------------------
#include <stdio.h>
void asmcode();
void cagain();
int main()
{ asmcode();
return(0);
}
void cagain()
{ puts("works\n");
}
---------------------------------------------
Basically, coming back to c-code and calling certain functions,
like in this case printf() gives a buserror. Calling puts() on
the other hand works, like can be seen by building the above and
executing those.
Does anybody know what's up?
Regards,
Eivind N Evensen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150205133653.GA16112>
