some problems targeting VMS

Jay K jay.krell@cornell.edu
Sun Apr 25 15:28:00 GMT 2010


I know it's kind of sleazy, and I understand the resulting inefficiency, if I use exceptions, but one way to reduce the problems is configure -enable-sjlj-exceptions.

 - Jay

----------------------------------------
> From: jay.krell@cornell.edu
> To: gcc-help@gcc.gnu.org
> Subject: some problems targeting VMS
> Date: Sat, 24 Apr 2010 01:23:06 +0000
>
>
> This is with release 4.5.0 (with reference to trunk also). Maybe I should try trunk.
>
>
> VMS issues:
>
> 1)
>
> current:
> http://gcc.gnu.org/viewcvs/trunk/gcc/config/vms/t-vms?revision=150230&view=markup
>
> # Temporary restriction: VMS_EXTRA_PARTS must be compiled by DEC C.
> #VMS_EXTRA_PARTS=vcrt0.o pcrt0.o
> VMS_EXTRA_PARTS=
>
> DECC=`echo $(CC) | sed -e 's/xgcc -B.*/decc$(exeext)/' -e 's/^gcc/decc/' -e 's/^decc/.\/decc/' -e 's/\(.*\)-gcc/\1-decc/'`
>
> # Assemble startup files.
> $(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
>     $(DECC) -c /names=as_is $(srcdir)/config/vms/vms-crt0.c -o $(T)vcrt0.o
>
> $(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
>     $(DECC) -c /names=as_is $(srcdir)/config/vms/vms-psxcrt0.c -o $(T)pcrt0.o
>
>
> This code dates to I believe 2001:
> introduced partly in http://gcc.gnu.org/viewcvs/trunk/gcc/config/alpha/t-vms?r1=47532&r2=47831
>
> The "temporary" comment I think came with the move from alpha/t-vms to vms/t-vms, 8 months ago.
>
> Must it still be compiled with DEC C?
> I'll try it with gcc.
>
> There is this:
>
> #if !defined(__DECC)
> /*You Lose! This file can only be compiled with DEC C.*/
> #else
>
>
> of course to deal with.
> (Is #error not widely enough implemented?)
>
>
> 2)
>
> /obj/gcc/avms/./gcc/xgcc -B/obj/gcc/avms/./gcc/ -B/usr/local/alpha-dec-vms/bin/ -B/usr/local/alpha-dec-vms/lib/ -isystem /usr/local/alpha-dec-vms/include -isystem /usr/local/alpha-dec-vms/sys-include    -g -O2 -mieee -mcpu=ev6 -O2  -g -O2 -mieee -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -mieee -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc  -I. -I. -I../../.././gcc -I/src/gcc-4.5.0/libgcc -I/src/gcc-4.5.0/libgcc/. -I/src/gcc-4.5.0/libgcc/../gcc -I/src/gcc-4.5.0/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c /src/gcc-4.5.0/libgcc/../gcc/unwind-dw2.c
> In file included from /src/gcc-4.5.0/libgcc/../gcc/resource.h:24:0,
>                  from /usr/local/alpha-dec-vms/include/wait.h:74,
>                  from /usr/local/alpha-dec-vms/include/stdlib.h:51,
>                  from /src/gcc-4.5.0/libgcc/../gcc/config/alpha/vms-unwind.h:26,
>                  from /src/gcc-4.5.0/libgcc/../gcc/unwind-dw2.c:333:
> /src/gcc-4.5.0/libgcc/../gcc/hard-reg-set.h:42:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'HARD_REG_ELT_TYPE'
>
>
> Line is:
> typedef unsigned HOST_WIDEST_FAST_INT HARD_REG_ELT_TYPE;
>
> seems to be various problems compiling unwind-dw2.c:
>
> /src/gcc-4.5.0/libgcc/../gcc/input.h:25:22: fatal error: line-map.h: No such file or directory
> and others, gmp.h, symtab.h
> compilation terminated.
>
> for now I removed unwind-dw2.c et al from being compiled.
> emptying LIB2ADDEH I think it was.
>
> I also had to hack the VMS headers a bit, like:
>
> #if defined(__GNUC_) && !defined(__int64)
> #define __int64 long long
> #endif
>
> (typedef doesn't work, due to "unsigned __int64")
>
> It would probably behoove gcc to understand "__int64", at least on VMS and NT/Cygwin/MinGW.
>   Probably it already does on the latter.
>
>
>  - Jay
>
>
 		 	   		  



More information about the Gcc-help mailing list