> I'm trying to figure out why bsdmake on MacOS does this using the
> standard Makefiles:
> 
> cc -c -I. -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT
> -DDSO_DLFCN -DHAVE_DLFCN_H -Wall -pedantic -DPEDANTIC -Wno-long-long
> -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror
> -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK
> -DOPENSSL_NO_DEPRECATED -Wno-language-extension-token
> -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int
> -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
> -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
> -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -c -o
> x86_64cpuid.o x86_64cpuid.s
> 
> but does this when using the single makefile:
> 
> as   -o tmp.master/x86_64cpuid.o tmp.master/x86_64cpuid.s
> 
> anyone got any ideas? Its driving me crazy (and stops the single
> makefile from working on macos).
> 
> AFAICS, both routes should use a .s.o rule which invokes as, so ... wtf?

>From Makefile.

...
ASFLAG=$(CFLAG)

BUILD_CMD=... $(MAKE) -e $(BUILDENV) ...

build_crypto:
        ... AS='$(CC) -c' ...
        $(BUILD_ONE_CMD)
...

For reference, idea behind -e $(BUILDENV) is to achieve consistent
behaviour among different make flavours, BSD vs. SysV.

For unification sake, i.e. to harmonize rules usage on all platforms, it
might be appropriate to switch to .S on x86_64. I mean a number of
platforms use .S files as output from perlasm scripts, i.e. assembly
code that needs C pre-processing, which can arguably serve as common
denominator for all platforms.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to