Gravatar de Armonth

Windows Vista limita el uso de GCC

No me gusta demasiado escribir sobre Windows Vista por la de tiempo que puede conllevar moderar si se genera un flame sin sentido, pero es que el nuevo sistema operativo de Microsoft ya parece de juzgado de guardia.

Si ayer hice un resumen de los problemas que le están sucediendo, ahora me entero que limita el uso de GCC (vía Kernel Source:

Executable images created for the DOS/Wintel environment, using the GNU GCC compilers and language standards (but not linking to the Win32 API), are subject to failure (or performance degradation) when executed in Microsoft Windows Vista, because Vista arbitrarily restricts the memory space for the GCC executable to 32 MB (33,554,432 bytes).

Attempts to allocate more memory than this using the malloc(…) function (or related functions, such as calloc(…)) will fail. This limitation applies whether the application is executed with the Run command, within a Command Prompt box (DOS box), or with the Start command.

This limitation does not appear in Windows XP, Windows 98SE, or standalone DOS; the exact same executable, running under Windows XP SP2 or Win98SE, is capable of allocating several hundred megabytes of physical memory (if present on the machine). The limitation appears to apply to any compiler and linker not employing Microsoft’s proprietary Win32 API.

O traducido:

Los executables creados para el entorno DOS/Wintel usando el compilador GNU GCC y lenguajes estándares (pero sin enlazar a la Win32 API) pueden fallar (o su rendimiento verse degradado) cuando son executados en Microsoft Windows Vista debido a una restricción arbitraria a 32 MB (33,554,432 bytes) del espacio de memoria para el ejecutable de GCC.

Intentar ubicar (N.dT: “allocate”) más memoria usando la función malloc(...) (o funciones relacionadas como calloc(...)) fallaran. Esta limitación se aplica a cualquier aplicación que es ejecutada con el comando “Ejecutar”, con el interprete de comandos (a.k.a “consola DOS”) o con el comando Start.

Esta limitación no aparece en Windows XP, Windows 98SE o DOS: el mismo ejecutable corriendo sobre Windows XP SP2 o Win98SE es capaz de ubicar cientos de megabytes de memoria física (si ésta está presente en la máquina). La limitación parece que se aplica a cualquier compilador o enlazador (N.dT: linker) que no usa la API propietaria de Microsoft Win32.

En fin, parece un ataque directo al software libre y a desarrollos multiplataforma, el artículo sigue y parece que no sólo limita GCC (todo compilador o enlazador que no use Win32 API) pero éste es sin duda el mayor perjudicado.

14 Comentarios (feed)

  1. Gravatar de Skatox Skatox nos comenta:

    Que porqueria el Vista, me parece muy mala competencia que hagan cosas como estas.

    Domingo, 22 de Abril/2007 @ 18:48

  2. Gravatar de Rarok Rarok nos comenta:

    Pues vale, debido a toda esas distribuciones Linux para torpes y a que los ordenadores de Apple están mas baratos que nunca posiblemente Microsoft esté pasando por su peor época en cuanto a cuotas de mercado y para mejorar la situación tiran piedras contra su propio tejado: requisitos de sistema absurdos, imposibilidad de recuperar sus propias copias de seguridad, una cantidad de variantes del mismo Vista que hace dudar cual comprar y ahora resulta que no permiten utilizar compiladores de otros…

    Conclusión: Los desarrolladores utilizarán otros sistemas operativos para programar, una vez que hay que programar desde otro sistema operativo pues ya haces una versión para el SO desde el que trabajas, y de ahí poco a poco irán abandonando Windows…

    Domingo, 22 de Abril/2007 @ 20:18

  3. Gravatar de j_aroche j_aroche nos comenta:

    Enrealidad será solo GCC el afectado, o son todos aquellos programas compilados sin usar las API de Windows. Yo imagino que es por lo segundo… lo siento pero ya no podrás usar tu viejos programas en FoxPro, ni tus juegos DOS XD

    Domingo, 22 de Abril/2007 @ 21:32

  4. Gravatar de cristian cristian nos comenta:

    hola he leido los comentarios…bueno io propramo con el mingw y al comprarme un note venia con vista bueno instale el mingw hice algunos programas pero al compilar me salia ————-configuration: chao - Debug—————-
    compilin..
    chao.c
    gcc.exe: intallation problem, cannot exec ‘cc1′: No such file or directory

    chao.o - 1 error(s), 0 warning(s)

    mi pregunta es si se pude arreglar esto para que pueda compilar el mingw…ojala me respondan prfa!!!

    Miércoles, 30 de Mayo/2007 @ 5:17

  5. Gravatar de Pablo Ignacio Pablo Ignacio nos comenta:

    Como odio Window$ Vista, porque limita a los compiladores de GNU como GCC y a las APIs ANSI, POSIX y otros que superan bastante a la de Win32. En Linux y DOS mis programas se compilan bastante bien solo porque no restringen a los compiladores de codigo abierto. Ese metodo creado por Micro$oft frente a compiladores GCC y programas sin la API de Win32 es solo para hacer creer a los programadores que es mejor usar compiladores propietarios (como el cochino M$ Visual Basic o el asqueroso M$ Vicual C/C++, o si no el lenguaje C#, plagio de los lenguajes C/C++) en vez de compiladores de codigo libre, y es evidentemente una tecnica de monopolio abusadora hacia el codigo abierto. Yo pienso usar solo Linux (el mejor de todos), Win$hit 2000 (solo para desensamblar drivers y examinarlos) y DOS (por su velocidad)

    Lunes, 30 de Julio/2007 @ 17:02

  6. Gravatar de Deramond Deramond nos comenta:

    Estoy buscando todos los comandos que usa la funcion system de C++.

    si alguien los tiene agradeceria que me los enviara

    Miércoles, 26 de Septiembre/2007 @ 22:05

  7. Gravatar de Codigo_sub0 Codigo_sub0 nos comenta:

    Windows vista es un asco.. en realidad s lo peor en S.O. es una pena q microsoft este diseñando porquerias asi….

    Domingo, 11 de Noviembre/2007 @ 19:47

  8. Gravatar de pere pere nos comenta:

    ayr leí un artículo que creo que tiene que ver con esto:

    wikipedia
    64-bit data models:

    Many 64-bit compilers today use the LP64 model (including Solaris, AIX, HP, Linux, Mac OS X, and IBM z/OS native compilers). Microsoft’s VC++ compiler uses the LLP64 model. The disadvantage of the LP64 model is that storing a long into an int may overflow. On the other hand, casting a pointer to a long will work. In the LLP model, the reverse is true. These are not problems which affect fully standard-compliant code but code is often written with implicit assumptions about the widths of integer types.

    Domingo, 9 de Marzo/2008 @ 12:53

  9. Gravatar de Jonathan_SuperCoder Jonathan_SuperCoder nos comenta:

    Desde hace un año vengo compilando todos mis programas en Linux usando GCC…!Que libertad para programar (En C++)!…Gracias a la comunidad del software libre me estoy liberando de la tirania de Windows y su limitativo sistema operativo Vista…Pero aun asi, que mala y desagradable noticia…Eso si que es una patetica estrategia de monopolizacion…

    Jueves, 1 de Mayo/2008 @ 4:53

  10. Gravatar de Salvador Salvador nos comenta:

    Lo unico que me guso del vista es el juego de ajedrez, el chess titans, de alli, es una porqueria para programar, yo uso el dev c++ para programar graficos de opengl, con el gcc, y cuando el programa se hace grande, me sale que el cc1plus dejo de funcionar y no compila nada.

    Sábado, 9 de Agosto/2008 @ 18:50

  11. Gravatar de Dani Dani nos comenta:

    Hola!
    Tengo el mismo problema…al intentar compilar mi programa en c en el windows vista me aparece
    gcc.exe: installation problem, cannot exec `cc1′: No such file or directory
    Creo que voy a tener que crear un sistema operativo nuevo xq estos que están en el mercado son una mierda…

    Viernes, 3 de Octubre/2008 @ 14:38

  12. Gravatar de Dani Dani nos comenta:

    Debido a que la mayoria de los PC’s nuevos traen instalados Windows Vista se ha vuelto un problema para los estudiantes de primeros semestres de las carreras de ingenieria instalar el entorno de desarrollo integrado de DevC, este inconveniente se puede solucionar (despues de muchas noches de intentarlo), con solo 2 pasos.

    1. Ir a Herramientas -> Opciones del Compilador, seleccionar el tab Directorios dentro de este se debe seleccioanar el tab Binarios y agregar el path C:Dev-Cpplibexecgccmingw323.4.2.

    2. Luego deben cambiar del tab Directorios al tab programas y agregar la ruta completa de los ejecutables que se encuentran listados, por ejemplo si dice gcc.exe se debe cambiar por C:Dev-CppBingcc.exe.

    Con estos dos sencillos pasos podemos ejecutar DevC en Windows Vista o al menos eso creo (no lo he provado aún)

    Viernes, 3 de Octubre/2008 @ 15:17

  13. Gravatar de braseiro braseiro nos comenta:

    Oie yo tmb tenia porblemas con el gcc para el vista, para el compilador de lexico, pero ya lo he arreglao con un ejecutable k me pillao se llama gcc1 si kereis os lo puedo enviar, dejad direccion vale . . . venga gente

    Viernes, 21 de Noviembre/2008 @ 20:03

  14. Gravatar de braseiro braseiro nos comenta:

    ademas me salia ese mismo problema
    gcc.exe: installation problem, cannot exec `cc1′: No such file or directory un saludo

    Viernes, 21 de Noviembre/2008 @ 20:04

Comentarios cerrados