Enveloppez les appels à malloc pour la bibliothèque tierce libA.a, mais pas pour libB.a

Supposons que vous ayez un fichier object main.o et deux bibliothèques statiques tierces externes libA.a et libB.b. Et vous voulez les relier entre eux. Mais vous voulez envelopper les appels à malloc à partir de libA.a (remplacez malloc par les vôtres), mais pas pour libB.a.

Comment ferais-tu ceci?

C’est un problème intéressant, mais est-ce que cela peut être résolu?

(pour le rendre plus intéressant, supposons qu’il mélange du code c et du code c ++ :))

Edit 1:

Pour rendre les choses plus claires. Je vais vous montrer comment cela peut être fait pour les deux bibliothèques:

gcc -static -Wl,--wrap=malloc -o main.out main.o mem.o -lA -lB 

Ici, le fichier mem.o contient le code pour la fonction __wrap_malloc. Mais cela entraînera l’utilisation des malloc personnalisés par les deux bibliothèques. La question est de savoir comment le faire fonctionner pour un seul d’entre eux.

Une bonne réponse à mon autre question, qui était plus spécifique.

Enveloppez malloc mais seulement pour certains fichiers d’entrée (object et lib)