News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

Cannot have an empty lib prefix in the gcc compiler (and copies)

Started by Jan van den Borst, April 25, 2007, 02:13:07 PM

Previous topic - Next topic

Jan van den Borst

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

mandrav

What happens if set a space as prefix? Does it detect that too and removes it?
Be patient!
This bug will be fixed soon...

Jan van den Borst

No a space is added to the lib name so "lib.ext" --> " lib.ext"

Jan van den Borst

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>

Jan van den Borst

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

mandrav

QuoteI 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.
Be patient!
This bug will be fixed soon...

Jan van den Borst

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