bugmake - Bugs: bug #34818, PATH_SEPARATOR_CHAR broken for...

 
 

bug #34818: PATH_SEPARATOR_CHAR broken for windows when cross-compiled

Submitter:  Ozkan Sezer <sezero>
Submitted:  Mon 14 Nov 2011 11:04:23 AM UTC
   
 
Severity:  3 - Normal Item Group:  None
Status:  Fixed Privacy:  Public
Assigned to:  psmith Open/Closed:  Closed
Component Version:  3.82 Operating System:  MS Windows
Fixed Release:  4.0 Triage Status:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 16 Jan 2012 09:31:31 PM UTC, comment #7: 

I committed this change.

Paul D. Smith <psmith>
Group administrator
Mon 14 Nov 2011 06:23:50 PM UTC, comment #6: 


> Cross-compiling for a Windows target sounds funky
> to me but I definitely see the attraction there :-)


Yep :)

I, for one, compile 95% of times on linux rather than
on windows or djgpp.

Ozkan Sezer <sezero>
Mon 14 Nov 2011 06:19:56 PM UTC, comment #5: 

Gotcha.  I didn't realize people were using autotools with Windows targets.  Cross-compiling for a Windows target sounds funky to me but I definitely see the attraction there :-).

Paul D. Smith <psmith>
Group administrator
Mon 14 Nov 2011 05:41:37 PM UTC, comment #4: 


> ... For typical Windows, VMS, OS2, etc. builds GNU make doesn't
> run autotools (as I understand it).


Well, need not run autotools, if one is lazy or especially when
building on the native OS itself, provided that he has his own
build scripts or makefiles, etc.  When cross-compiling from linux
(or whatever else unix) to windows, djgpp, os2 or whatever, one
usually does use and usually prefers using autotools.  There you
have the problems with autotool's PATH_SEPARATOR_CHAR.

I do not object to adding OS-specific PATH_SEPARATOR_CHAR values
to OS-specific config.h templates, however removing those defines
from make.h shall lead to trouble.

Ozkan Sezer <sezero>
Mon 14 Nov 2011 04:40:19 PM UTC, comment #3: 

Maybe I don't understand the context.  For typical Windows, VMS, OS2, etc. builds GNU make doesn't run autotools (as I understand it).  It has predefined config.h variations for those targets and you copy the right one over to config.h before you build (or the build script or whatever does it for you).

Adding PATH_SEPARATOR_CHAR there wouldn't be an issue for autotools.

Paul D. Smith <psmith>
Group administrator
Mon 14 Nov 2011 03:27:42 PM UTC, comment #2: 


> A slightly cleaner implementation might have PATH_SEPARATOR_CHAR
> defined in the various target-specific config.h files on systems
> that don't support autoconf, ...


Autoconf is the problem here, because its PATH_SEP detection is
not cross-compilation-friendly, therefore it needs defining per-
target-OS.  See, e.g., the binutils tree, for example, where they
use autotools is used PATH_SEPARATOR+shell scripts thingies, but
all .c and .h define it themselves. (I am not an autools expert,
though..)

Ozkan Sezer <sezero>
Mon 14 Nov 2011 02:33:16 PM UTC, comment #1: 

Hi Eli; let me know if you want me to commit this or if you've got it.

A slightly cleaner implementation might have PATH_SEPARATOR_CHAR defined in the various target-specific config.h files on systems that don't support autoconf, then in make.h we can just use:


#ifndef PATH_SEPARATOR_CHAR
# define PATH_SEPARATOR_CHAR ':'
#endif


and save ourselves some more complicated ifdef'ing.

Paul D. Smith <psmith>
Group administrator
Mon 14 Nov 2011 11:04:23 AM UTC, original submission:  

PATH_SEPARATOR_CHAR is defined incorrectly when make is configured for windows in a cross-build environment such as on linux.  The issue was noticed during this discussion:
http://sourceforge.net/mailarchive/message.php?msg_id=26032191

The fix patch was posted by Chris Sutcliffe here:
http://lists.gnu.org/archive/html/make-w32/2010-08/msg00039.html

It was approved, AFAICS, but hasn't been applied, so far.  Creating this bug entry so that this doesn't get lost/forgotten.

Ozkan Sezer <sezero>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #24368:  make-PATH_SEPARATOR_CHAR.patch added by sezero (948B - application/octet-stream - PATH_SEPARATOR_CHAR fix when cross-compiling)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by psmith (Posted a comment)
  • -email is unavailable- added by sezero (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2012-01-16 psmith StatusNone Fixed
        Assigned toNone psmith
        Open/ClosedOpen Closed
        Component VersionNone 3.82
        Fixed ReleaseNone 4.0
    2011-11-14 sezero Attached File- Added make-PATH_SEPARATOR_CHAR.patch, #24368

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code