Jump to content



Member Since 25 Jun 2012
Online Last Active A minute ago

Posts I've Made

In Topic: Clover General discussion

19 August 2017 - 03:46 PM

Guys, why you want XCPM? Does it has advantages?

XCPM on Ivy useful for certain laptop CPUs to avoid panic otherwise.
(probably mismatch between X86PlatformPlugin data and CPU capabilities).

In Topic: Clover General discussion

14 August 2017 - 03:31 AM

How can I enforce how they build something?? Even if I changed the build scripts, they could just not use them, that's part of the problem really. I think that maybe they should just use standard C. I don't think it's very useful if you start using C99 or C11, since that source cannot be built by every compiler but C89/90 can. Like if you take any C class in school they certainly aren't teaching you C99 or C11. When you change those options in Xcode, it doesn't change system wide, it just changes the arguments passed to clang/GCC when compiling. So maybe, probably, by default Xcode might use C99 by passing it as an argument. I have never used Xcode to directly build a C source though.... And the EDK2 build system uses a tools_def.txt file to define build rules, I'm sure that everyone uses different ones. There's a default from EDK2, one in clover, pretty sure that each tool to help build uses its own too...

Hmm... I think most people using this to build Clover:

In Topic: Clover General discussion

13 August 2017 - 09:59 PM

Not sure what you mean, Xcode uses clang which is forked from GCC 4.2 (earlier versions just use GCC)... It has way more messed up default rules than even GCC, neither actually follows the standard and decides to make a hybrid of C89/90 and C99, just differently. The C89/90 standard should be followed when writing C code, because that's standard C and what compilers should default to without being overridden. Also technically, C99 is dead and withdrawn from both ANSI and ISO in favor of C11. Not very many compilers actually have a full C99 implementation, I only know of GCC. And only like GCC and VS support C11, I know some versions don't support the full implementation but I'm pretty sure they both have full now. You should not be targeting anything but C89/90 unless you need a specific language feature, which is not needed, so should be using standard C here.

I'm pretty sure I've seen options inside the Xcode project manager to disable C99 (and probably other extensions).
But I'm not familiar enough with the Clover/edk2 build process to find the spot that needs to be changed to disable them.
Nor does it interest me much.
I was just suggesting that if you want devs to stick to a certain subset of the many C-standards, it should be enforced by the build process.

In Topic: Clover General discussion

13 August 2017 - 03:36 AM

Yes, of course, but not by default, almost every compiler is by default ANSI C89/90. Except for GCC which is C90 with GCC-specific extensions.

If the intention is to build Clover without C99, perhaps it should be disabled when building with Xcode. Then you don't have to worry about devs adding code that depend on it.

IMHO, Seems ok to rely on tech (C99) that was ratified more than 17 years ago.

In Topic: Clover General discussion

12 August 2017 - 09:10 PM

Yes, all the scripts should be 755.
@syscl, PMheart, Sherlocks, whoever else commited after 4128:
There are a ton of mistakes. Please look back over your code and correctly use UINTN, UINT32, UINT64. Also you cannot place declarations after a statement, so those declarations of patches need to be moved outside the functions or to the beginning before any statements. You should disable GCC C extensions as they make the compiler act like C++ instead of C, which causes all sorts of problems when another compiler is used.
EDIT: In case you are wondering, no, I cannot build if I don't use GCC...

Just wondering... you're using a C compiler that doesn't support C99?
© 2016 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy