www.digitalmars.com         C & C++   DMDScript  

D.gnu - gdc phobos and druntime automatic import

reply Benjamin Thaut <code benjamin-thaut.de> writes:
I want to use a different version of druntime and phobos with GDC but I 
don't want to overwrite the default ones. Instead I want to specifiy a 
different include directory during compile time. I first thought that 
-nostdinc is the option I want, but -nostdinc seems to do something 
different. How does GDC know where to import druntime and phobos from, 
and how do I overwrite it?

Kind Regards
Benjamin Thaut
Mar 14 2013
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 14 March 2013 19:05, Benjamin Thaut <code benjamin-thaut.de> wrote:

 I want to use a different version of druntime and phobos with GDC but I
 don't want to overwrite the default ones. Instead I want to specifiy a
 different include directory during compile time. I first thought that
 -nostdinc is the option I want, but -nostdinc seems to do something
 different. How does GDC know where to import druntime and phobos from, and
 how do I overwrite it?

 Kind Regards
 Benjamin Thaut

The library is installed in /usr/lib, which is part of the LIBRARY_PATH. The static library itself is a combination of druntime and phobos together, not separate at the moment. To specify a different standard library, use -defaultlib switch. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
prev sibling parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com> wrote:

 On 14 March 2013 19:05, Benjamin Thaut <code benjamin-thaut.de> wrote:

 I want to use a different version of druntime and phobos with GDC but I
 don't want to overwrite the default ones. Instead I want to specifiy a
 different include directory during compile time. I first thought that
 -nostdinc is the option I want, but -nostdinc seems to do something
 different. How does GDC know where to import druntime and phobos from, and
 how do I overwrite it?

 Kind Regards
 Benjamin Thaut

The library is installed in /usr/lib, which is part of the LIBRARY_PATH. The static library itself is a combination of druntime and phobos together, not separate at the moment. To specify a different standard library, use -defaultlib switch.

Will also make mention that druntime is installed in /usr/lib too ( -lgdruntime ) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 11:05, schrieb Iain Buclaw:
 On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
 <mailto:ibuclaw ubuntu.com>> wrote:

     On 14 March 2013 19:05, Benjamin Thaut <code benjamin-thaut.de
     <mailto:code benjamin-thaut.de>> wrote:

         I want to use a different version of druntime and phobos with
         GDC but I don't want to overwrite the default ones. Instead I
         want to specifiy a different include directory during compile
         time. I first thought that -nostdinc is the option I want, but
         -nostdinc seems to do something different. How does GDC know
         where to import druntime and phobos from, and how do I overwrite it?

         Kind Regards
         Benjamin Thaut



     The library is installed in /usr/lib,  which is part of the
     LIBRARY_PATH.   The static library itself is a combination of
     druntime and phobos together, not separate at the moment.  To
     specify a different standard library, use -defaultlib switch.



 Will also make mention that druntime is installed in /usr/lib too (
 -lgdruntime )



 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Well I don't want to overwrite the existing version of druntime and phobos. I want to be ablte to specifiy via a compiler option to use a different version of them. In some projects I use the original druntime + phobos and in other projects I use my custom version. With dmd this is possible via a custom sc.ini file. So is there a option to just remove druntime/phobos from LIBRARY_PATH? (and keep everything else) Kind Regards Benjamin Thaut
Mar 15 2013
parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 12:01, Benjamin Thaut <code benjamin-thaut.de> wrote:

 Well I don't want to overwrite the existing version of druntime and
 phobos. I want to be ablte to specifiy via a compiler option to use a
 different version of them. In some projects I use the original druntime +
 phobos and in other projects I use my custom version. With dmd this is
 possible via a custom sc.ini file. So is there a option to just remove
 druntime/phobos from LIBRARY_PATH? (and keep everything else)

 Kind Regards
 Benjamin Thaut

You didn't seem to read my first message. :) On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>> wrote: The library is installed in /usr/lib, which is part of the LIBRARY_PATH. The static library itself is a combination of druntime and phobos together, not separate at the moment. To specify a different standard library, use -defaultlib switch. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 13:26, schrieb Iain Buclaw:
 On 15 March 2013 12:01, Benjamin Thaut <code benjamin-thaut.de
 <mailto:code benjamin-thaut.de>> wrote:


     Well I don't want to overwrite the existing version of druntime and
     phobos. I want to be ablte to specifiy via a compiler option to use
     a different version of them. In some projects I use the original
     druntime + phobos and in other projects I use my custom version.
     With dmd this is possible via a custom sc.ini file. So is there a
     option to just remove druntime/phobos from LIBRARY_PATH? (and keep
     everything else)

     Kind Regards
     Benjamin Thaut


 You didn't seem to read my first message. :)

 On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
 <mailto:ibuclaw ubuntu.com>
 <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>> wrote:

      The library is installed in /usr/lib,  which is part of the
      LIBRARY_PATH.   The static library itself is a combination of
      druntime and phobos together, not separate at the moment.  To
      specify a different standard library, use -defaultlib switch.



 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

I don't fully understand that statement. So the -defaultlib switch gives the location for the import files .di/.d and not for the actual library (.a) ? Kind Regards Benjamin Thaut
Mar 15 2013
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 13:05, Benjamin Thaut <code benjamin-thaut.de> wrote:

 Am 15.03.2013 13:26, schrieb Iain Buclaw:

 On 15 March 2013 12:01, Benjamin Thaut <code benjamin-thaut.de

 <mailto:code benjamin-thaut.de**>> wrote:


     Well I don't want to overwrite the existing version of druntime and
     phobos. I want to be ablte to specifiy via a compiler option to use
     a different version of them. In some projects I use the original
     druntime + phobos and in other projects I use my custom version.
     With dmd this is possible via a custom sc.ini file. So is there a
     option to just remove druntime/phobos from LIBRARY_PATH? (and keep
     everything else)

     Kind Regards
     Benjamin Thaut


 You didn't seem to read my first message. :)

 On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
 <mailto:ibuclaw ubuntu.com>
 <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>> wrote:

      The library is installed in /usr/lib,  which is part of the
      LIBRARY_PATH.   The static library itself is a combination of
      druntime and phobos together, not separate at the moment.  To
      specify a different standard library, use -defaultlib switch.



 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

I don't fully understand that statement. So the -defaultlib switch gives the location for the import files .di/.d and not for the actual library (.a) ?

No, that's -I and -J -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
prev sibling parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com> wrote:

 On 15 March 2013 13:05, Benjamin Thaut <code benjamin-thaut.de> wrote:

 Am 15.03.2013 13:26, schrieb Iain Buclaw:

 On 15 March 2013 12:01, Benjamin Thaut <code benjamin-thaut.de

 <mailto:code benjamin-thaut.de**>> wrote:


     Well I don't want to overwrite the existing version of druntime and
     phobos. I want to be ablte to specifiy via a compiler option to use
     a different version of them. In some projects I use the original
     druntime + phobos and in other projects I use my custom version.
     With dmd this is possible via a custom sc.ini file. So is there a
     option to just remove druntime/phobos from LIBRARY_PATH? (and keep
     everything else)

     Kind Regards
     Benjamin Thaut


 You didn't seem to read my first message. :)

 On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
 <mailto:ibuclaw ubuntu.com>
 <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>> wrote:

      The library is installed in /usr/lib,  which is part of the
      LIBRARY_PATH.   The static library itself is a combination of
      druntime and phobos together, not separate at the moment.  To
      specify a different standard library, use -defaultlib switch.



 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

I don't fully understand that statement. So the -defaultlib switch gives the location for the import files .di/.d and not for the actual library (.a) ?

No, that's -I and -J

Use case: gdc foo.d -defaultlib tango2 This will invoke the driver to add -ltango2 to the linker options, instead of -lgphobos2 Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 14:20, schrieb Iain Buclaw:
 On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com
 <mailto:ibuclaw ubuntu.com>> wrote:

     On 15 March 2013 13:05, Benjamin Thaut <code benjamin-thaut.de
     <mailto:code benjamin-thaut.de>> wrote:

         Am 15.03.2013 13:26, schrieb Iain Buclaw:

             On 15 March 2013 12:01, Benjamin Thaut
             <code benjamin-thaut.de <mailto:code benjamin-thaut.de>

             <mailto:code benjamin-thaut.de
             <mailto:code benjamin-thaut.de>__>> wrote:


                  Well I don't want to overwrite the existing version of
             druntime and
                  phobos. I want to be ablte to specifiy via a compiler
             option to use
                  a different version of them. In some projects I use the
             original
                  druntime + phobos and in other projects I use my custom
             version.
                  With dmd this is possible via a custom sc.ini file. So
             is there a
                  option to just remove druntime/phobos from
             LIBRARY_PATH? (and keep
                  everything else)

                  Kind Regards
                  Benjamin Thaut


             You didn't seem to read my first message. :)

             On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
             <mailto:ibuclaw ubuntu.com>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>>> wrote:

                   The library is installed in /usr/lib,  which is part
             of the
                   LIBRARY_PATH.   The static library itself is a
             combination of
                   druntime and phobos together, not separate at the
             moment.  To
                   specify a different standard library, use -defaultlib
             switch.



             --
             Iain Buclaw

             *(p < e ? p++ : p) = (c & 0x0f) + '0';


         I don't fully understand that statement.
         So the -defaultlib switch gives the location for the import
         files .di/.d and not for the actual library (.a) ?


     No,  that's -I and -J



 Use case:

 gdc foo.d -defaultlib tango2


 This will invoke the driver to add -ltango2 to the linker options,
 instead of -lgphobos2

 Regards
 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Well but I'm not talking about the linker. If I do import std.stdio; I want to have a error message that std.stdio does not exist. Kind Regards Benjamin Thaut
Mar 15 2013
parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 14:06, Benjamin Thaut <code benjamin-thaut.de> wrote:

 Am 15.03.2013 14:20, schrieb Iain Buclaw:

 On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com

 <mailto:ibuclaw ubuntu.com>> wrote:

     On 15 March 2013 13:05, Benjamin Thaut <code benjamin-thaut.de
     <mailto:code benjamin-thaut.de**>> wrote:

         Am 15.03.2013 13:26, schrieb Iain Buclaw:

             On 15 March 2013 12:01, Benjamin Thaut
             <code benjamin-thaut.de <mailto:code benjamin-thaut.de**>

             <mailto:code benjamin-thaut.de

             <mailto:code benjamin-thaut.de**>__>> wrote:


                  Well I don't want to overwrite the existing version of
             druntime and
                  phobos. I want to be ablte to specifiy via a compiler
             option to use
                  a different version of them. In some projects I use the
             original
                  druntime + phobos and in other projects I use my custom
             version.
                  With dmd this is possible via a custom sc.ini file. So
             is there a
                  option to just remove druntime/phobos from
             LIBRARY_PATH? (and keep
                  everything else)

                  Kind Regards
                  Benjamin Thaut


             You didn't seem to read my first message. :)

             On 15 March 2013 10:03, Iain Buclaw <ibuclaw ubuntu.com
             <mailto:ibuclaw ubuntu.com>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
             <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>>>
 wrote:

                   The library is installed in /usr/lib,  which is part
             of the
                   LIBRARY_PATH.   The static library itself is a
             combination of
                   druntime and phobos together, not separate at the
             moment.  To
                   specify a different standard library, use -defaultlib
             switch.



             --
             Iain Buclaw

             *(p < e ? p++ : p) = (c & 0x0f) + '0';


         I don't fully understand that statement.
         So the -defaultlib switch gives the location for the import
         files .di/.d and not for the actual library (.a) ?


     No,  that's -I and -J



 Use case:

 gdc foo.d -defaultlib tango2


 This will invoke the driver to add -ltango2 to the linker options,
 instead of -lgphobos2

 Regards
 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Well but I'm not talking about the linker. If I do import std.stdio; I want to have a error message that std.stdio does not exist. Kind Regards Benjamin Thaut

-nostdinc should do that. Though the first error thrown would be that object.di cannot be found, which is correct behaviour, you need to specify where the new object.di is using -I -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 15:29, schrieb Iain Buclaw:
 On 15 March 2013 14:06, Benjamin Thaut <code benjamin-thaut.de
 <mailto:code benjamin-thaut.de>> wrote:

     Am 15.03.2013 14:20, schrieb Iain Buclaw:

         On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>

         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>> wrote:

              On 15 March 2013 13:05, Benjamin Thaut
         <code benjamin-thaut.de <mailto:code benjamin-thaut.de>
              <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>> wrote:

                  Am 15.03.2013 13:26, schrieb Iain Buclaw:

                      On 15 March 2013 12:01, Benjamin Thaut
                      <code benjamin-thaut.de
         <mailto:code benjamin-thaut.de> <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>

                      <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>

                      <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>__>> wrote:


                           Well I don't want to overwrite the existing
         version of
                      druntime and
                           phobos. I want to be ablte to specifiy via a
         compiler
                      option to use
                           a different version of them. In some projects
         I use the
                      original
                           druntime + phobos and in other projects I use
         my custom
                      version.
                           With dmd this is possible via a custom sc.ini
         file. So
                      is there a
                           option to just remove druntime/phobos from
                      LIBRARY_PATH? (and keep
                           everything else)

                           Kind Regards
                           Benjamin Thaut


                      You didn't seem to read my first message. :)

                      On 15 March 2013 10:03, Iain Buclaw
         <ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
                      <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>>> wrote:

                            The library is installed in /usr/lib,  which
         is part
                      of the
                            LIBRARY_PATH.   The static library itself is a
                      combination of
                            druntime and phobos together, not separate at the
                      moment.  To
                            specify a different standard library, use
         -defaultlib
                      switch.



                      --
                      Iain Buclaw

                      *(p < e ? p++ : p) = (c & 0x0f) + '0';


                  I don't fully understand that statement.
                  So the -defaultlib switch gives the location for the import
                  files .di/.d and not for the actual library (.a) ?


              No,  that's -I and -J



         Use case:

         gdc foo.d -defaultlib tango2


         This will invoke the driver to add -ltango2 to the linker options,
         instead of -lgphobos2

         Regards
         --
         Iain Buclaw

         *(p < e ? p++ : p) = (c & 0x0f) + '0';


     Well but I'm not talking about the linker. If I do

     import std.stdio;

     I want to have a error message that std.stdio does not exist.

     Kind Regards
     Benjamin Thaut



 -nostdinc should do that.  Though the first error thrown would be that
 object.di cannot be found, which is correct behaviour,  you need to
 specify where the new object.di is using -I


 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Thats the problem. As soon as I specify -nostdinc a lot of other options get missing to. For example gdc no longer includes the contents of version(Windows) statements. Is it possible that the phobos-ver-syms files have something to do with that? Kind Regards Benjamin Thaut -- Kind Regards Benjamin Thaut
Mar 15 2013
parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
On 15 March 2013 15:21, Benjamin Thaut <code benjamin-thaut.de> wrote:

 Am 15.03.2013 15:29, schrieb Iain Buclaw:

 On 15 March 2013 14:06, Benjamin Thaut <code benjamin-thaut.de

 <mailto:code benjamin-thaut.de**>> wrote:

     Am 15.03.2013 14:20, schrieb Iain Buclaw:

         On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>

         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>> wrote:

              On 15 March 2013 13:05, Benjamin Thaut
         <code benjamin-thaut.de <mailto:code benjamin-thaut.de**>
              <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de**>__>> wrote:

                  Am 15.03.2013 13:26, schrieb Iain Buclaw:

                      On 15 March 2013 12:01, Benjamin Thaut
                      <code benjamin-thaut.de
         <mailto:code benjamin-thaut.de**> <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de**>__>

                      <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de**>

                      <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de**>__>__>> wrote:


                           Well I don't want to overwrite the existing
         version of
                      druntime and
                           phobos. I want to be ablte to specifiy via a
         compiler
                      option to use
                           a different version of them. In some projects
         I use the
                      original
                           druntime + phobos and in other projects I use
         my custom
                      version.
                           With dmd this is possible via a custom sc.ini
         file. So
                      is there a
                           option to just remove druntime/phobos from
                      LIBRARY_PATH? (and keep
                           everything else)

                           Kind Regards
                           Benjamin Thaut


                      You didn't seem to read my first message. :)

                      On 15 March 2013 10:03, Iain Buclaw
         <ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
                      <mailto:ibuclaw ubuntu.com <mailto:
 ibuclaw ubuntu.com>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>
                      <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>>**> wrote:

                            The library is installed in /usr/lib,  which
         is part
                      of the
                            LIBRARY_PATH.   The static library itself is a
                      combination of
                            druntime and phobos together, not separate at
 the
                      moment.  To
                            specify a different standard library, use
         -defaultlib
                      switch.



                      --
                      Iain Buclaw

                      *(p < e ? p++ : p) = (c & 0x0f) + '0';


                  I don't fully understand that statement.
                  So the -defaultlib switch gives the location for the
 import
                  files .di/.d and not for the actual library (.a) ?


              No,  that's -I and -J



         Use case:

         gdc foo.d -defaultlib tango2


         This will invoke the driver to add -ltango2 to the linker options,
         instead of -lgphobos2

         Regards
         --
         Iain Buclaw

         *(p < e ? p++ : p) = (c & 0x0f) + '0';


     Well but I'm not talking about the linker. If I do

     import std.stdio;

     I want to have a error message that std.stdio does not exist.

     Kind Regards
     Benjamin Thaut



 -nostdinc should do that.  Though the first error thrown would be that
 object.di cannot be found, which is correct behaviour,  you need to
 specify where the new object.di is using -I


 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Thats the problem. As soon as I specify -nostdinc a lot of other options get missing to. For example gdc no longer includes the contents of version(Windows) statements. Is it possible that the phobos-ver-syms files have something to do with that?

That shouldn't be the case if you are using a recent development version (see patch-versym-os-4.8.x where there is a builtin define for Windows) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Mar 15 2013
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 17:06, schrieb Iain Buclaw:
 On 15 March 2013 15:21, Benjamin Thaut <code benjamin-thaut.de
 <mailto:code benjamin-thaut.de>> wrote:

     Am 15.03.2013 15:29, schrieb Iain Buclaw:

         On 15 March 2013 14:06, Benjamin Thaut <code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>

         <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>> wrote:

              Am 15.03.2013 14:20, schrieb Iain Buclaw:

                  On 15 March 2013 13:18, Iain Buclaw <ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>

                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>>> wrote:

                       On 15 March 2013 13:05, Benjamin Thaut
                  <code benjamin-thaut.de <mailto:code benjamin-thaut.de>
         <mailto:code benjamin-thaut.de <mailto:code benjamin-thaut.de>__>
                       <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>
                  <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>__>> wrote:

                           Am 15.03.2013 13:26, schrieb Iain Buclaw:

                               On 15 March 2013 12:01, Benjamin Thaut
                               <code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>
                  <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>
         <mailto:code benjamin-thaut.de <mailto:code benjamin-thaut.de>
                  <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>__>

                               <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>
                  <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>

                               <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>
                  <mailto:code benjamin-thaut.de
         <mailto:code benjamin-thaut.de>__>__>__>> wrote:


                                    Well I don't want to overwrite the
         existing
                  version of
                               druntime and
                                    phobos. I want to be ablte to
         specifiy via a
                  compiler
                               option to use
                                    a different version of them. In some
         projects
                  I use the
                               original
                                    druntime + phobos and in other
         projects I use
                  my custom
                               version.
                                    With dmd this is possible via a
         custom sc.ini
                  file. So
                               is there a
                                    option to just remove druntime/phobos
         from
                               LIBRARY_PATH? (and keep
                                    everything else)

                                    Kind Regards
                                    Benjamin Thaut


                               You didn't seem to read my first message. :)

                               On 15 March 2013 10:03, Iain Buclaw
                  <ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
                               <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com> <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>
                               <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>>>
                               <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>>
                               <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>>
         <mailto:ibuclaw ubuntu.com <mailto:ibuclaw ubuntu.com>
                  <mailto:ibuclaw ubuntu.com
         <mailto:ibuclaw ubuntu.com>>>>>__> wrote:

                                     The library is installed in
         /usr/lib,  which
                  is part
                               of the
                                     LIBRARY_PATH.   The static library
         itself is a
                               combination of
                                     druntime and phobos together, not
         separate at the
                               moment.  To
                                     specify a different standard
         library, use
                  -defaultlib
                               switch.



                               --
                               Iain Buclaw

                               *(p < e ? p++ : p) = (c & 0x0f) + '0';


                           I don't fully understand that statement.
                           So the -defaultlib switch gives the location
         for the import
                           files .di/.d and not for the actual library (.a) ?


                       No,  that's -I and -J



                  Use case:

                  gdc foo.d -defaultlib tango2


                  This will invoke the driver to add -ltango2 to the
         linker options,
                  instead of -lgphobos2

                  Regards
                  --
                  Iain Buclaw

                  *(p < e ? p++ : p) = (c & 0x0f) + '0';


              Well but I'm not talking about the linker. If I do

              import std.stdio;

              I want to have a error message that std.stdio does not exist.

              Kind Regards
              Benjamin Thaut



         -nostdinc should do that.  Though the first error thrown would
         be that
         object.di cannot be found, which is correct behaviour,  you need to
         specify where the new object.di is using -I


         --
         Iain Buclaw

         *(p < e ? p++ : p) = (c & 0x0f) + '0';


     Thats the problem. As soon as I specify -nostdinc a lot of other
     options get missing to. For example gdc no longer includes the
     contents of version(Windows) statements.
     Is it possible that the phobos-ver-syms files have something to do
     with that?


 That shouldn't be the case if you are using a recent development version
 (see patch-versym-os-4.8.x where there is a builtin define for Windows)

 --
 Iain Buclaw

 *(p < e ? p++ : p) = (c & 0x0f) + '0';

Well mingw-gdc is quite a bit behind. Kind Regards Benjamin Thaut
Mar 15 2013
parent reply Daniel Green <venix1 gmail.com> writes:
On 3/15/2013 11:42 AM, Benjamin Thaut wrote:
 Well mingw-gdc is quite a bit behind.

I'm working on that. C:\MinGW\msys\1.0>/crossdev/gdc/stage/bin/gdc -v Using built-in specs. COLLECT_GCC=/crossdev/gdc/stage/bin/gdc COLLECT_LTO_WRAPPER=c:/crossdev/gdc/stage/bin/../libexec/gcc/i686-pc-mingw32/4.8.0/lto-wrapper.exe Target: i686-pc-mingw32 Configured with: ../configure --prefix=/crossdev/gdc/stage --with-gmp=/crossdev/gdc/deps/gmp --with-mpfr=/crossdev/gdc/deps/mpfr --with-mpc=/crossdev/gdc/deps/mpc --with-cloog=/crossdev/gdc/deps/cloog/ --with-isl=/crossdev/gdc/deps/isl --disable-bootstrap --enable-languages=c,c++,d,lto Thread model: win32 gcc version 4.8.0 20130303 (experimental) (GCC) But in the meantime just modify the code directly. You can find it in d-lang.cc look for VersionCondition::addPredefinedGlobalIdent ("GNU"); and add one for Windows.
Mar 15 2013
next sibling parent Benjamin Thaut <code benjamin-thaut.de> writes:
Am 15.03.2013 20:00, schrieb Daniel Green:
 On 3/15/2013 11:42 AM, Benjamin Thaut wrote:
 Well mingw-gdc is quite a bit behind.

I'm working on that. C:\MinGW\msys\1.0>/crossdev/gdc/stage/bin/gdc -v Using built-in specs. COLLECT_GCC=/crossdev/gdc/stage/bin/gdc COLLECT_LTO_WRAPPER=c:/crossdev/gdc/stage/bin/../libexec/gcc/i686-pc-mingw32/4.8.0/lto-wrapper.exe Target: i686-pc-mingw32 Configured with: ../configure --prefix=/crossdev/gdc/stage --with-gmp=/crossdev/gdc/deps/gmp --with-mpfr=/crossdev/gdc/deps/mpfr --with-mpc=/crossdev/gdc/deps/mpc --with-cloog=/crossdev/gdc/deps/cloog/ --with-isl=/crossdev/gdc/deps/isl --disable-bootstrap --enable-languages=c,c++,d,lto Thread model: win32 gcc version 4.8.0 20130303 (experimental) (GCC) But in the meantime just modify the code directly. You can find it in d-lang.cc look for VersionCondition::addPredefinedGlobalIdent ("GNU"); and add one for Windows.

Awesome. Thank you very much. It is really nice to hear that you are working on a 4.8.0 mingw port.
Mar 15 2013
prev sibling parent Johannes Pfau <nospam example.com> writes:
Am Fri, 15 Mar 2013 14:00:23 -0500
schrieb Daniel Green <venix1 gmail.com>:

 On 3/15/2013 11:42 AM, Benjamin Thaut wrote:
 Well mingw-gdc is quite a bit behind.

I'm working on that. C:\MinGW\msys\1.0>/crossdev/gdc/stage/bin/gdc -v Using built-in specs. COLLECT_GCC=/crossdev/gdc/stage/bin/gdc COLLECT_LTO_WRAPPER=c:/crossdev/gdc/stage/bin/../libexec/gcc/i686-pc-mingw32/4.8.0/lto-wrapper.exe Target: i686-pc-mingw32 Configured with: ../configure --prefix=/crossdev/gdc/stage --with-gmp=/crossdev/gdc/deps/gmp --with-mpfr=/crossdev/gdc/deps/mpfr --with-mpc=/crossdev/gdc/deps/mpc --with-cloog=/crossdev/gdc/deps/cloog/ --with-isl=/crossdev/gdc/deps/isl --disable-bootstrap --enable-languages=c,c++,d,lto Thread model: win32 gcc version 4.8.0 20130303 (experimental) (GCC) But in the meantime just modify the code directly. You can find it in d-lang.cc look for VersionCondition::addPredefinedGlobalIdent ("GNU"); and add one for Windows.

Great! Is there any change gdc changes could be upstreamed to the official gdc repo when this is finished? Then I could also backport those changes to the gdc-4.7 branch.
Mar 15 2013