On Mon, May 21, 2001 at 02:36:29PM -0400, Mike A. Harris wrote:
>On Mon, 21 May 2001, Brian Paul wrote:
>
>>> >I tried building the trunk code (according to the guide) and have run
>>> >into a raft of errors in the Mesa portion of the tree. Some sample error
>>> >messages:
>>> >
>>> >gcc -E  common_x86_asm.S > common_x86_asm.s
>>> >common_x86_asm.S:37:22: assyntax.h: No such file or directory
>>> >common_x86_asm.S:38:33: common_x86_features.h: No such file or directory
>>> >make[6]: *** [common_x86_asm.s] Error 1
>>> >...
>>> >gcc -E  x86_cliptest.S > x86_cliptest.s
>>> >x86_cliptest.S:26:22: assyntax.h: No such file or directory
>>> >x86_cliptest.S:27:23: clip_args.h: No such file or directory
>>> >make[6]: *** [x86_cliptest.s] Error 1
>>> >gcc -E  x86_vertex.S > x86_vertex.s
>>> >x86_vertex.S:1:22: assyntax.h: No such file or directory
>>> >make[6]: *** [x86_vertex.s] Error 1
>>> >gcc -E  x86_xform_masked2.S > x86_xform_masked2.s
>>> >x86_xform_masked2.S:26:22: assyntax.h: No such file or directory
>>> >x86_xform_masked2.S:27:24: xform_args.h: No such file or directory
>>> >
>>> >It would appear that the header files are not being put in the
>>> >appropriate locations. Is the build on the trunk known to be broken?
>>
>>
>>I don't think the header files are the problem.  I just rebuilt
>>lib/GL/ on my DRI trunk and it worked fine.  However, the commands
>>used to build the assembly sourece files look different.  Here's
>>how common_x86_asm.S is assembled into common_x86_asm.o on my system:
>>
>>rm -f common_x86_asm.i
>>/lib/cpp -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE
>>-D_BSD_SOURCE -D_SVID_SOURCE  -D_GNU_SOURCE   -D__ELF__ -DMALLOC_0_RETURNS_NULL 
>-DGLXEXT
>>-DXF86DRI -DGLX_DIRECT_RENDERING -DGLX_USE_DLOPEN -DGLX_USE_MESA  -DUSE_X86_ASM
>>-DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -I../../../../../exports/include
>>-I../../../../../include/extensions -I../../../../../extras/Mesa/src
>>-I../../../../../extras/Mesa/src/X86   common_x86_asm.S | \
>>grep -v '^\#' > common_x86_asm.i
>>rm -f common_x86_asm.o
>>as -o common_x86_asm.o common_x86_asm.i
>>rm -f common_x86_asm.i
>>
>>It looks like your systems are doing:
>>
>>gcc -E  common_x86_asm.S > common_x86_asm.s
>
>Yep, that caught me as strange too, so I added to my host.def:
>
>#define PreProcessCmd           cpp
>
>
>And the problem went away...

I'm not sure why, but might depend on how close your xc/config/cf
files are to the XFree86 ones.

>>The Imakefile rule 'ObjectFromAsmSource' is used to build the assembly source
>>files.  This rule is defined in xc/config/cf/xf86.rules as:
>>
>>
>>#ifndef ObjectFromAsmSource
>>#define ObjectFromAsmSource(src,flags)                                        @@\
>>                                                                      @@\
>>src.o:  src.S                                                         @@\
>>      AssembleObject(flags)                                           @@\
>>                                                                      @@\
>>src.i:  src.S                                                         @@\
>>      CPPOnlyAsm(src,flags)                                           @@\
>>                                                                      @@\
>>depend:: src.S
>>#endif

AssembleObject is defined as:

#ifndef AssembleObject
#define AssembleObject(flags) CPPOnlyAsm($*,flags)                      @@\
        RemoveFile($*.o)                                                @@\
        $(AS) -o $*.o $*.i                                              @@\
        RemoveFile($*.i)
#endif

and CPPOnlyAsm is defined as:

#ifndef CPPOnlyAsm
#define CPPOnlyAsm(basename,options) RemoveFile(basename.i)             @@\
        $(CPP) AsmDefines $(DEFINES) $(INCLUDES) options basename.S | \ @@\
                grep -v '^\#' > basename.i
#endif

$(CPP) is set to 'CppCmd $(STD_CPP_DEFINES)' in Imake.tmpl, and
CppCmd is set to /lib/cpp in linux.cf.  I don't see anything using
PreProcessCmd or $(PREPROCESSCMD) in the imake cf files (other than
in Win32.cf).

Besides, you seemed to be hitting a rule that converted a .S to a .s,
and we don't define one.  Also, we don't have a rule that converts
a .S to a .o via a .s, only via a .i.

David
--
David Dawes                                      Email: [EMAIL PROTECTED]
Founder/President, The XFree86 Project, Inc      Phone: +1 510 687 6857
http://www.xfree86.org/

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to