|  | /* | 
|  | * Copyright (C) 2013 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | // Some FreeBSD source includes <complex.h> and assumes <math.h> from that. | 
|  | #include <math.h> | 
|  | #include <float.h> | 
|  |  | 
|  | #define __weak_reference(sym,alias)     \ | 
|  | __asm__(".weak " #alias);           \ | 
|  | __asm__(".equ "  #alias ", " #sym) | 
|  |  | 
|  | #define __strong_reference(sym,aliassym) \ | 
|  | extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))) | 
|  |  | 
|  | #define __warn_references(sym,msg) /* ignored */ | 
|  |  | 
|  | // digittoint is in BSD's <ctype.h>, but not ours, so we have a secret | 
|  | // implementation in libm. We reuse parts of libm in the NDK's | 
|  | // libandroid_support, where it's a static library, so we want all our | 
|  | // "hidden" functions start with a double underscore --- being HIDDEN | 
|  | // in the ELF sense is not sufficient. | 
|  | #define digittoint __libm_digittoint | 
|  | int digittoint(char ch); | 
|  |  | 
|  | // Similarly rename _scan_nan. | 
|  | #define _scan_nan __libm_scan_nan |