Thread overview
optlink: file not found _CDMLINE (tango,wine)
Jan 29, 2008
Lutger
Jan 29, 2008
Lars Ivar Igesund
Jan 29, 2008
Lutger
tango-related access violation on wine
Jan 30, 2008
Lutger
Jan 30, 2008
Lars Ivar Igesund
Jan 30, 2008
Lutger
Jan 29, 2008
Lars Ivar Igesund
Feb 19, 2008
WasserDragoon
January 29, 2008
I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:

OPTLINK : Error 2: File Not Found _CMDLINE
--- errorlevel 1

After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?
January 29, 2008
Lutger wrote:

> I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:
> 
> OPTLINK : Error 2: File Not Found _CMDLINE
> --- errorlevel 1
> 
> After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?

I saw a similar thing when I tested wine, maybe rebuild is doing the wrong thing there?

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
January 29, 2008
"Lutger" <lutger.blijdestijn@gmail.com> wrote in message news:fnn879$22ke$1@digitalmars.com...
> I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:
>
> OPTLINK : Error 2: File Not Found _CMDLINE
> --- errorlevel 1
>
> After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?

I suppose another question is why you're using DMDWin on Linux in the first place..


January 29, 2008
Jarrett Billingsley wrote:

> "Lutger" <lutger.blijdestijn@gmail.com> wrote in message news:fnn879$22ke$1@digitalmars.com...
>> I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:
>>
>> OPTLINK : Error 2: File Not Found _CMDLINE
>> --- errorlevel 1
>>
>> After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?
> 
> I suppose another question is why you're using DMDWin on Linux in the first place..

To be able to test software for Windows without having to stop by that, uhm, OS?

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
January 29, 2008
"Lars Ivar Igesund" <larsivar@igesund.net> wrote in message news:fnnbuk$2cho$3@digitalmars.com...
>
> To be able to test software for Windows without having to stop by that,
> uhm,
> OS?

Good point :)


January 29, 2008
Lars Ivar Igesund wrote:

> Lutger wrote:
> 
>> I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:
>> 
>> OPTLINK : Error 2: File Not Found _CMDLINE
>> --- errorlevel 1
>> 
>> After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?
> 
> I saw a similar thing when I tested wine, maybe rebuild is doing the wrong thing there?
> 

Apparently it is an environment variable passed to link.exe. I found the following snippet in link.c in both the rebuild and dmd source code. I'm still not sure what is going on though:

#if _WIN32
int executecmd(char *cmd, char *args, int useenv)
{
    int status;
    char *buff;
    size_t len;

    if (!global.params.quiet || global.params.verbose)
    {
        printf("%s %s\n", cmd, args);
        fflush(stdout);
    }

    if ((len = strlen(args)) > 255)
    {   char *q;
        static char envname[] = "@_CMDLINE";

        envname[0] = '@';
        switch (useenv)
        {   case 0:     goto L1;
            case 2: envname[0] = '%';   break;
        }
        q = (char *) alloca(sizeof(envname) + len + 1);
        sprintf(q,"%s=%s", envname + 1, args);
        status = putenv(q);
        if (status == 0)
            args = envname;
        else
        {
        L1: 0;
            //error("command line length of %d is too long",len);
        }
    }

    status = executearg0(cmd,args);
#if _WIN32
    if (status == -1)
        status = spawnlp(0,cmd,cmd,args,NULL);
#endif
//    if (global.params.verbose)
//      printf("\n");
    if (status)
    {
        if (status == -1)
            printf("Can't run '%s', check PATH\n", cmd);
        else
            printf("--- errorlevel %d\n", status);
    }
    return status;
}
#endif
January 30, 2008
This _CMDLINE problem isn't related to tango, it also happens with phobos on wine if the command lines to compile are long enough.

However, I got a hello world tango program to compile and it crashes with an exception (access violation). This happens at the end of the program. Is it ok to file this as a ticket for tango?

Someday I hope this stuff will work, when it does I will make a wine-doors
package.


January 30, 2008
Lutger wrote:

> This _CMDLINE problem isn't related to tango, it also happens with phobos on wine if the command lines to compile are long enough.
> 
> However, I got a hello world tango program to compile and it crashes with an exception (access violation). This happens at the end of the program. Is it ok to file this as a ticket for tango?

If it is reproducable under windows, sure. The examples I tried worked fine though, so you may have hit upon a wine bug.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
January 30, 2008
Lars Ivar Igesund wrote:

> Lutger wrote:
> 
>> This _CMDLINE problem isn't related to tango, it also happens with phobos on wine if the command lines to compile are long enough.
>> 
>> However, I got a hello world tango program to compile and it crashes with an exception (access violation). This happens at the end of the program. Is it ok to file this as a ticket for tango?
> 
> If it is reproducable under windows, sure. The examples I tried worked fine though, so you may have hit upon a wine bug.
> 

Yes most probably it is. If I can find out more about it, I'll report it to the wine developers.
February 19, 2008
Lutger Wrote:

> I've setup a windows version of dmd with phobos, tango and dsss on wine (PcLinuxOS i686). dmd+phobos with dsss works fine, but with tango I get this optlink error:
> 
> OPTLINK : Error 2: File Not Found _CMDLINE
> --- errorlevel 1
> 
> After some google-fu, I found out that CMDLINE is used to pass long arguments to the linker. After this however, I got stuck. Can anybody help me out? Do I need to provide more information in order to make that possible?

Now Wine 0.9.55 is available, but the bug exists anymore :-(
No news here with this topic?
I got the same problem...