Bug 4432 – DMD r575 won't build on Linux in debug mode: undefined reference to obj_long
Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2010-07-06T10:11:00Z
Last change time
2012-05-03T03:32:45Z
Assigned to
nobody
Creator
chadjoan
Comments
Comment #0 by chadjoan — 2010-07-06T10:11:56Z
When I try to build DMD revision 575 in debug mode on my Linux machine I get this error:
cgcv.o: In function `cv4_outsym':
/mnt/sharedhd/dprojects/experimental/properties/dmd.svn.r575/src/backend/cgcv.c:2277: undefined reference to `obj_long(int, unsigned int, unsigned long, unsigned int, unsigned int, unsigned int)'
collect2: ld returned 1 exit status
make: *** [dmd] Error 1
It seems to be caused by the removal of obj_long in elfobj.c at revision 572.
I'm not sure what the proper way to fix it is since obj_long seems to be on its way out from elfobj anyways. As a workaround I just put the stub back from pre-r572 to make it compile.
I compiled DMD in debug mode by switching to this GFLAGS line in linux.mak:
GFLAGS = $(WARNINGS) -D__near= -D__pascal= -fno-exceptions -g -DDEBUG=1 -DUNITTEST $(COV)
When I compile with the normal GFLAGS everything works fine.
My Linux machine is 64-bit but I am building the 32-bit version of the compiler like normal.