/* 
 | 
 * Copyright 2021 Richard Purdie 
 | 
 * 
 | 
 * SPDX-License-Identifier: GPL-2.0-only 
 | 
 */ 
 | 
  
 | 
#include <errno.h> 
 | 
#include <stdio.h> 
 | 
#include <stdlib.h> 
 | 
#include <string.h> 
 | 
#include <unistd.h> 
 | 
  
 | 
/* 
 | 
 * Run the original script (argv[0] + ".real") with LD_LIBRARY_PATH unset 
 | 
 * This avoids issues where cargo is running a wrapper script using /bin/sh from the host 
 | 
 * which links to something which has an incompatible version in in recipe-sysroot-native 
 | 
 * such as libtinfo on centos 7. 
 | 
 */ 
 | 
  
 | 
int main(int argc, char* argv[]) { 
 | 
    char *real = malloc(strlen(argv[0] + 5)); 
 | 
    strcpy(real, argv[0]); 
 | 
    strcpy(real + strlen(argv[0]), ".real"); 
 | 
    putenv("LD_LIBRARY_PATH="); 
 | 
    if(execv(real, argv) == -1) { 
 | 
        printf("Wrapper failed to execute, error: %s\n", strerror(errno)); 
 | 
        return -1; 
 | 
    } 
 | 
} 
 |