I want to compile for iOS.

I run with next script to create MakeFile and `make -j4`

As far as I know, the `system` function was removed from the iOS SDK 11 (5 years ago), so libde265 has no hope of being compatible with the iOS platform?

<details><summary>log</summary>
<p>


```log
rd-curves.cc:377:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:399ld: warning: ignoring file ../libde265/.libs/libde265.a, building for iOS-arm64 but attempting to link with file built for iOS-arm64
:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:557:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:634:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
```

</p>
</details> 

<details><summary>iconfigure</summary>
<p>



```sh
#!/bin/sh
set -e

usage () {
  echo "Usage: [VARIABLE...] $(basename $0) architecture"
  echo ""
  echo "  architecture   Target architecture. [armv7|armv7s|arm64|i386|x86_64]"
  echo ""
  echo "  VARIABLEs are:"
  echo "    SDKVERSION   Target a specific SDK version."
  echo "    PREFIX       Custom install prefix, useful for local installs."
  echo "    CHOST        Configure host, set if not deducable by ARCH."
  echo "    SDK          SDK target, set if not deducable by ARCH. [iphoneos|iphonesimulator]"
  echo ""
  echo "    CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH"
  echo ""
  echo "  All additional parameters are passed to the configure script."
  exit 1
}

ScriptDir="$( cd "$( dirname "$0" )" && pwd )"

# Sanity checks
if [ "$#" -lt 1 ]; then
  echo "Please supply an architecture name."
  usage
fi

if [ ! -x "./configure" ] ; then
  echo "No configure script found."
  usage
fi

# Build architecture
export ARCH=$1

# Export supplied CHOST or deduce by ARCH
if [ ! -z "$CHOST" ]; then
  export CHOST
else
  case $ARCH in
    armv7 | armv7s )
      export CHOST=arm-apple-darwin*
      ;;
    arm64 )
      export CHOST=aarch64-apple-darwin*
      ;;
    i386 | x86_64 )
      export CHOST=$ARCH-apple-darwin*
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDK or deduce by ARCH
if [ ! -z "$SDK" ]; then
  export SDK
else
  case $ARCH in
    armv7 | armv7s | arm64 )
      export SDK=iphoneos
      ;;
    i386 | x86_64 )
      export SDK=iphonesimulator
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDKVERSION or use system default
if [ ! -z "$SDKVERSION" ]; then
  SDKNAME=$(basename $(xcrun --sdk $SDK --show-sdk-platform-path) .platform)
  export SDKVERSION
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-platform-path)"/Developer/SDKs/$SDKNAME.$SDKVERSION.sdk"
else
  export SDKVERSION=$(xcrun --sdk $SDK --show-sdk-version) # current version
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-path) # current version
fi

# Export supplied PREFIX or use default
if [ ! -z "$PREFIX" ]; then
  export PREFIX
else
  export PREFIX="$ScriptDir/$SDK-$SDKVERSION/$ARCH"
fi

# Binaries
export CC=$(xcrun --sdk $SDK --find clang)
export CPP=$(xcrun --sdk $SDK --find clang)" -E"
export CXX=$(xcrun --sdk $SDK --find clang++)
export LD=$(xcrun --sdk $SDK --find ld)

# Flags
export CFLAGS="$CFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CPPFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CXXFLAGS="$CXXFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include"
export LDFLAGS="$LDFLAGS -arch $ARCH -isysroot $SDKROOT -L$PREFIX/lib"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$SDKROOT/usr/lib/pkgconfig":"$PREFIX/lib/pkgconfig"

# Remove script parameters
shift 1

# Run configure
./configure \
	--prefix="$PREFIX" \
	--host="$CHOST" \
	--enable-static \
	--disable-shared \
	$@
```


</p>
</details> 

My command:

```shell
./iconfigure arm64  --disable-dec265  --disable-sherlock265
make -j4
``` 
error: 'system' is unavailable: not available on iOS
This is a GitHub Issue
repo:libde265
owner:strukturag
Title : error: 'system' is unavailable: not available on iOS
Issue date:

--- start body ---
I want to compile for iOS.

I run with next script to create MakeFile and `make -j4`

As far as I know, the `system` function was removed from the iOS SDK 11 (5 years ago), so libde265 has no hope of being compatible with the iOS platform?

<details><summary>log</summary>
<p>


```log
rd-curves.cc:377:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:399ld: warning: ignoring file ../libde265/.libs/libde265.a, building for iOS-arm64 but attempting to link with file built for iOS-arm64
:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:557:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:634:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
```

</p>
</details> 

<details><summary>iconfigure</summary>
<p>



```sh
#!/bin/sh
set -e

usage () {
  echo "Usage: [VARIABLE...] $(basename $0) architecture"
  echo ""
  echo "  architecture   Target architecture. [armv7|armv7s|arm64|i386|x86_64]"
  echo ""
  echo "  VARIABLEs are:"
  echo "    SDKVERSION   Target a specific SDK version."
  echo "    PREFIX       Custom install prefix, useful for local installs."
  echo "    CHOST        Configure host, set if not deducable by ARCH."
  echo "    SDK          SDK target, set if not deducable by ARCH. [iphoneos|iphonesimulator]"
  echo ""
  echo "    CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH"
  echo ""
  echo "  All additional parameters are passed to the configure script."
  exit 1
}

ScriptDir="$( cd "$( dirname "$0" )" && pwd )"

# Sanity checks
if [ "$#" -lt 1 ]; then
  echo "Please supply an architecture name."
  usage
fi

if [ ! -x "./configure" ] ; then
  echo "No configure script found."
  usage
fi

# Build architecture
export ARCH=$1

# Export supplied CHOST or deduce by ARCH
if [ ! -z "$CHOST" ]; then
  export CHOST
else
  case $ARCH in
    armv7 | armv7s )
      export CHOST=arm-apple-darwin*
      ;;
    arm64 )
      export CHOST=aarch64-apple-darwin*
      ;;
    i386 | x86_64 )
      export CHOST=$ARCH-apple-darwin*
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDK or deduce by ARCH
if [ ! -z "$SDK" ]; then
  export SDK
else
  case $ARCH in
    armv7 | armv7s | arm64 )
      export SDK=iphoneos
      ;;
    i386 | x86_64 )
      export SDK=iphonesimulator
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDKVERSION or use system default
if [ ! -z "$SDKVERSION" ]; then
  SDKNAME=$(basename $(xcrun --sdk $SDK --show-sdk-platform-path) .platform)
  export SDKVERSION
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-platform-path)"/Developer/SDKs/$SDKNAME.$SDKVERSION.sdk"
else
  export SDKVERSION=$(xcrun --sdk $SDK --show-sdk-version) # current version
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-path) # current version
fi

# Export supplied PREFIX or use default
if [ ! -z "$PREFIX" ]; then
  export PREFIX
else
  export PREFIX="$ScriptDir/$SDK-$SDKVERSION/$ARCH"
fi

# Binaries
export CC=$(xcrun --sdk $SDK --find clang)
export CPP=$(xcrun --sdk $SDK --find clang)" -E"
export CXX=$(xcrun --sdk $SDK --find clang++)
export LD=$(xcrun --sdk $SDK --find ld)

# Flags
export CFLAGS="$CFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CPPFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CXXFLAGS="$CXXFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include"
export LDFLAGS="$LDFLAGS -arch $ARCH -isysroot $SDKROOT -L$PREFIX/lib"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$SDKROOT/usr/lib/pkgconfig":"$PREFIX/lib/pkgconfig"

# Remove script parameters
shift 1

# Run configure
./configure \
	--prefix="$PREFIX" \
	--host="$CHOST" \
	--enable-static \
	--disable-shared \
	$@
```


</p>
</details> 

My command:

```shell
./iconfigure arm64  --disable-dec265  --disable-sherlock265
make -j4
``` 
--- end body ---

The issue indicates that the 'system' function is unavailable on iOS, which is a known limitation of the iOS SDK. This is not a security vulnerability but rather a compatibility issue with the iOS platform. The library libde265 cannot be compiled for iOS due to the removal of the 'system' function, which is essential for the current implementation of the library.