Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Plugins development => Topic started by: Jan van den Borst on April 25, 2007, 02:13:07 pm

Title: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: Jan van den Borst on April 25, 2007, 02:13:07 pm
LS,
I'm having problems having an empy lib prefix in the gcc compiler (I use a arm realview compiler so I made a copy of the gcc compiler).
When I set the prefix to "aaaa" in the advanced compiler options dialog (others) I see that an entry is created in the default.conf of:
<LIBPREFIX>
<str>
<![CDATA[aaaa]]>
</str>
</LIBPREFIX>

If I modify it to
<LIBPREFIX>
<str>
<![CDATA[]]>
</str>
</LIBPREFIX>

codeblocks seems to remove the entry after a restart and use the default lib prefix "lib".
How can I have an empty libprefix?

Jan
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: mandrav on April 25, 2007, 02:30:02 pm
What happens if set a space as prefix? Does it detect that too and removes it?
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: Jan van den Borst on April 25, 2007, 02:35:36 pm
No a space is added to the lib name so "lib.ext" --> " lib.ext"
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: Jan van den Borst on April 25, 2007, 02:47:16 pm
I see that when I enter a space as libprefix the libprefix key in the default.conf file is preserved and not deleted after a restart:         

<LIBPREFIX>
   <str>
      <![CDATA[ ]]>
   </str>
</LIBPREFIX>
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: Jan van den Borst on April 25, 2007, 04:40:50 pm
HI all,
I tracked down the problem to sc/sdk/compiler.cpp line 408

In my opinion this line:
  cfg->Write(tmp + _T("/switches/libPrefix"), m_Switches.libPrefix, true);

should be changed into

  cfg->Write(tmp + _T("/switches/libPrefix"), m_Switches.libPrefix, false);

Jan
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: mandrav on April 25, 2007, 06:00:05 pm
Quote
I tracked down the problem to sc/sdk/compiler.cpp line 408

Yes, the problem is not that I don't know where it skips saving empty values :), but rather how to handle this situation.

The problem here is that an empty lib prefix means "use default lib prefix for platform". So it's not a matter of saving it as empty or not but how to correctly distinguish between the "use default" value and a string set as empty on purpose.
Title: Re: Cannot have an empty lib prefix in the gcc compiler (and copies)
Post by: Jan van den Borst on April 25, 2007, 06:08:49 pm
Hi mandrav
When you change the code as I proposed there is no change in functional behavior of the compiler.

I think if you allow the prefix to be changed (in the advance option dialog) it must be possible to change it basically to anything including leaving it empty.

Changing an empty string back to "lib" is confusing. I think if the config file contains a field libprefix codeblocks should take this value.

Kind regards
Jan