Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Managed Make Solutions, GCC and Linking problems

Fantastic. All working.

For future reference...

The file
eclipse/plugins/org.eclipse.cdt.managedbuilder.ui_2.1.0/plugin.xml was
edited to include and extra attribute:

commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}
${OUTPUT} ${INPUTS}"

First, look for "toolChain" elements, for each one you find check the
"osList" attribute of the "targetPlatform" child element for the word
"solaris".

Once you've found the solaris toolchains, look through for each "tool"
element that appears to be a compiler. Add the "commandLinePattern"
element listed above. I made 14 entries in my file.

Save this and restart Eclipse using the -clean option.

Thanks for all your help

Rob

-----Original Message-----
From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
Behalf Of Rob Styles
Sent: 18 March 2005 20:11
To: cdt-dev@xxxxxxxxxxx
Subject: RE: [cdt-dev] Managed Make Solutions, GCC and Linking problems

Thanks for these responses - that would explain why my changes weren't
going anywhere :-)

I'm not back in the office 'til Monday. I'll be picking up then and I'll
post a summary of the solution once it's all working.

If anyone else is building C on Solaris I wouldn't mind hooking up
off-list for chats and mutual support - mail me and let me know.

Thanks for all help so far.

Rob


-----Original Message-----
From: cdt-dev-admin@xxxxxxxxxxx on behalf of Chris Wiebe
Sent: Fri 3/18/2005 8:02 PM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] Managed Make Solutions, GCC and Linking problems
 
After running into many of these headaches myself, I discovered that 
launching eclipse with the "-clean" option will flush the plugin cache. 
  That usually does the trick for me when I'm modifying plugins and they

start acting 'funny'.

-Chris

Recoskie, Chris wrote:
> Having butted heads with a few of the issues associated with the
plugin
> parsing algorithms I know a bit about how Eclipse handles the
plugin.xml
> files.
> 
> In general, the plugin.xml files are loaded on startup only unless you
> install a new feature via the update mechanism and ask it to try to
> startup the new plugins in place.
> 
> The first time you run Eclipse, all plugin.xmls are parsed.  Once the
> plugin.xml file is read in it is cached.
> 
> Eclipse will notice updates to plugins thereafter only if:
> 
> a) The eclipse/plugins directory has changed (i.e. its last modified
> time has changed ).  On most filesystems this works great as if you
add
> a plugin under eclipse/plugins that actually modifies the parent
> directory.  On some filesystems e.g. FAT32 this does not happen though
> and Eclipse will not notice that you've added anything unless you
> manually update the modified time of the eclipse/plugins directory.  I
> do not know offhand an exhaustive list of which filesystems this holds
> true for but you can test this by creating a directory and then adding
a
> file to it and seeing if the modified time of the directory changed.
> 
> There is a bugzilla filed against this somewhere but I recall that the
> owners essentially didn't see it as something they would fix anytime
> soon as they would have to rethink the whole plugin parsing algorithm.
> They don't want to be parsing all the plugins every time you start
> eclipse because startup time would be atrocious.
> 
> b) The plugin is new or the version specified in the plugin.xml is
> greater than what it was previously.  If you update the plugin.xml
> without revving the plugin, it will not be reparsed.
> 
> ___________________________________________
>  
> Chris Recoskie
> Software Designer
> IDE Frameworks Group
> Texas Instruments, Toronto
>  
>  
> 
> 
>>-----Original Message-----
>>From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
>>Behalf Of Treggiari, Leo
>>Sent: Friday, March 18, 2005 1:50 PM
>>To: cdt-dev@xxxxxxxxxxx
>>Subject: RE: [cdt-dev] Managed Make Solutions, GCC and Linking
> 
> problems
> 
>>Hi rob,
>>
>>Make sure this is on a single line:
>>
>>  commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}
>>${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}">
>>
>>Also, I don't know what algorithm Eclipse uses for re-loading the
>>plugin.xml files.  For example, I don't know whether Eclipse notices
>>that a plugin.xml file has changed, or whether it has stored the
>>information from the plugin.xml in its configuration data and won't
> 
> read
> 
>>the file again.  Maybe someone else on this mailing list knows...
>>
>>In the past, I've just deleted my "configuration" and "workspace"
>>directories, but there may be a less disruptive way to do this...
>>
>>Regards,
>>Leo
>>
>>-----Original Message-----
>>From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
>>Behalf Of Rob Styles
>>Sent: Friday, March 18, 2005 1:02 PM
>>To: cdt-dev@xxxxxxxxxxx
>>Subject: RE: [cdt-dev] Managed Make Solutions, GCC and Linking
> 
> problems
> 
>>Hey Leo,
>>
>>Thanks for the response - this looks just like what I need.
>>
>>What I've done is edited that so that each tool element looks
> 
> something
> 
>>like this:
>>
>><tool
>>  id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug"
>>  superClass="cdt.managedbuild.tool.gnu.c.compiler"
>>
>>  commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}
>>${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}">
>>  <option
>>    ...
>>  </option>
>>  ...
>></tool>
>>
>>This looked like it should work to me, based on your instructions and
>>the XML. I found 12 osLists with solaris in and I found 33 places to
> 
> add
> 
>>commandLinePattern in.
>>
>>However - it doesn't seem to have made the make files change :-( I
>>deleted the whole Debug folder just in case and it's re-created it,
> 
> but
> 
>>without a space between -o and output.
>>
>>Any thoughts?
>>
>>Thanks a lot
>>
>>rob
>>
>>-----Original Message-----
>>From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
>>Behalf Of Treggiari, Leo
>>Sent: 18 March 2005 17:24
>>To: cdt-dev@xxxxxxxxxxx
>>Subject: RE: [cdt-dev] Managed Make Solutions, GCC and Linking
> 
> problems
> 
>>Hi rob,
>>
>>The GCC tool-chain definitions can be found in
>>org.eclipse.cdt.managedbuilder.ui\plugin.xml.
>>Unfortunately, Solaris does not have a separate tool definition - the
>>definition is shared with linux, hpux, aix, qnx.  But, if you want to
>>make it work for your system:
>>
>>1.  Search for Solaris.  You should find 6 Configuration definitions
>>that specify Solaris in the osList.
>>2.  For each compiler Tool definition within each of the Configuration
>>objects,
>>    O  Add the following attribute:
>>
>>commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}
>>${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
>>
>>(There should be a space between ${OUTPUT_FLAG} and ${OUTPUT_PREFIX},
>>but on a single line.)
>>
>>Regards,
>>Leo
>>
>>-----Original Message-----
>>From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
>>Behalf Of Rob Styles
>>Sent: Friday, March 18, 2005 12:00 PM
>>To: cdt-dev@xxxxxxxxxxx
>>Subject: RE: [cdt-dev] Managed Make Solutions, GCC and Linking
> 
> problems
> 
>>Ok, I think I've got it down to the makefile content in subdir.mk
>>
>>for each of the .c sources we get:
>>  gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o$@
> 
> ../source/getMessage.c
> 
>>Now, this passes through to the assembler as:
>>  /usr/ccs/bin/as -V -Qy -s -xarch=v8 -osource/main.o
>>/var/tmp//ccDPIZmN.s
>>
>>The problem appears to be that the usage specifies [-o objfile]. If I
>>run the compile manually to generate the .s then run the assembler
>>manually with:
>>  /usr/ccs/bin/as -V -Qy -s -xarch=v8 -o source/main.o
>>/var/tmp//ccDPIZmN.s
>>
>>NB: the space between -o and source/main.o, then everything works
> 
> fine.
> 
>>I tried then editing the subdir.mk to add the space into the gcc
> 
> command
> 
>>line and that makes everything work fine.
>>
>>Does it make sense, then, to alter the templates that CDT is using to
>>generate my managed makefiles? If so, does anyone know where I can
> 
> find
> 
>>them?
>>
>>thanks
>>
>>rob
>>
>>
>>
>>-----Original Message-----
>>From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
>>Behalf Of Rob Styles
>>Sent: 18 March 2005 15:17
>>To: cdt-dev@xxxxxxxxxxx
>>Subject: [cdt-dev] Managed Make Solutions, GCC and Linking problems
>>
>>Hey All,
>>
>>I've got a problem with a managed make project under:
>>
>>  CDT 2.1.0 (Eclipse 3.0.1)
>>  Solaris 2.8
>>  gcc version 3.4.2;
>>  /usr/ccs/bin/as: Sun WorkShop 6 2003/12/18 Compiler Common 6.0 Patch
>>114802-02
>>
>>I've put together a quick HelloWorld with just two source files and
> 
> one
> 
>>header. The main calls a getMessage function which returns "Hello
> 
> World"
> 
>>which main then prints out to console.
>>
>>This doesn't build for me :-(
>>
>>Build output and code below. It appears (at very much face value) that
>>the assembler isn't being given any filenames to, well, assemble.
>>
>>Can anyone help me out with some guesses at the settings I've missed?
>>I'm running with defaults in all the C/C++ Build > Tool Settings :-(
>>
>>Thanks
>>
>>Rob
>>
>>____________________________________________________________________
>>**** Full rebuild of configuration Debug for project HelloWorld ****
>>
>>make -k clean all
>>rm -rf source/getMessage.o source/main.o   source/getMessage.d
>>source/main.d   HelloWorld
>>Building file: ../source/getMessage.c
>>gcc -O0 -g3 -Wall -c -fmessage-length=0 -osource/getMessage.o
>>../source/getMessage.c
>>/usr/ccs/bin/as: error: no input filename given
>>usage: /usr/ccs/bin/as [-V] [-Q{y,n}] [-f[O][if]#] [-q] [-s]
>>	  [-S] [-K {pic,PIC}] [-o objfile] [-L] [-T]
>>	  [-P [[-Ipath] [-Dname] [-Dname=def] [-Uname]]...]
>>	  [-m [-Ym,path]] [-n] [-ul] [-xF] [-xarch=v7] [-xarch=v8]
>>[-xarch=v8a] [-xarch=v8plus] [-xarch=v8plusa] [-xarch=v8plusb]
>>[-xarch=v9] [-xarch=v9a] [-xarch=v9b]  [-xcode={pic13,pic32}]
> 
> file.s...
> 
>>make: *** [source/getMessage.o] Error 1
>>Building file: ../source/main.c
>>gcc -O0 -g3 -Wall -c -fmessage-length=0 -osource/main.o
> 
> ../source/main.c
> 
>>/usr/ccs/bin/as: error: no input filename given
>>usage: /usr/ccs/bin/as [-V] [-Q{y,n}] [-f[O][if]#] [-q] [-s]
>>	  [-S] [-K {pic,PIC}] [-o objfile] [-L] [-T]
>>	  [-P [[-Ipath] [-Dname] [-Dname=def] [-Uname]]...]
>>	  [-m [-Ym,path]] [-n] [-ul] [-xF] [-xarch=v7] [-xarch=v8]
>>[-xarch=v8a] [-xarch=v8plus] [-xarch=v8plusa] [-xarch=v8plusb]
>>[-xarch=v9] [-xarch=v9a] [-xarch=v9b]  [-xcode={pic13,pic32}]
> 
> file.s...
> 
>>make: *** [source/main.o] Error 1
>>make: Target `all' not remade because of errors.
>>Build complete for project HelloWorl
>>
>>
>>
>>main.c__________________________________________________
>>#include <stdio.h>
>>#include <stdlib.h>
>>
>>#include "getMessage.h"
>>
>>int main(int argc, char *argv[]) {
>>	printf((char*)getMessage());
>>	exit(0);
>>}
>>
>>getMessage.c____________________________________________
>>char* getMessage() {
>>	return "Hello World";
>>}
>>
>>getMessage.h____________________________________________
>>char* getMessage();
>>
>>
>>
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>http://dev.eclipse.org/mailman/listinfo/cdt-dev
>>
>>
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>http://dev.eclipse.org/mailman/listinfo/cdt-dev
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>http://dev.eclipse.org/mailman/listinfo/cdt-dev
>>
>>
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>http://dev.eclipse.org/mailman/listinfo/cdt-dev
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>http://dev.eclipse.org/mailman/listinfo/cdt-dev
> 
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/cdt-dev
> 
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev





Back to the top